Tuesday, January 27, 2009

If Your Dog is Sick, Kick the Cat

We were struggling to find and fix the root cause of an application we were packaging for a mass deployment (5,000 plus computers).  Names have been changed to protect the inept.  Let's just say there's this insanely popular Windows software application product that is used by engineers and architects around the planet.  And you decide to package it, along with about six other products of theirs, to push out using your favorite flavor of desktop management software.  And when you install it, and run it the first time, your users start getting these crazy .NET errors.  You know, the kind that make no sense, like this...

System.Something.Or.Other.Library.Module.Unknown.Whatever.Broken,
System.Something.Or.Other.Library.Module.Unknown.Whatever.Broken,
System.Something.Or.Other.Library.Module.Unknown.Whatever.Broken,
System.Something.Or.Other.Library.Module.Unknown.Whatever.Broken,
System.Something.Or.Other.Library.Module.Unknown.Whatever.Broken,
System.Something.Or.Other.Library.Module.Unknown.Whatever.Broken
... error:  Divide by Zero, invalid integer value parameter passed to module
warning, warning, doom.destruction.countdown...

So, you might go back to the vendor and ask:  Hey, what exactly does this mean and how do we fix it on 5,000 computers?  Their answer is: "We really don't know.  Not sure.  We'll check on it and get back to you."  So you wait about a week and finally ask again.  They respond by opening a support call with Microsoft, who they get to call you and figure it out on the phone.

The answer is this: Open Control Panel, Open Regional and Language Settings, change the region from "English (US)" to something else, like "English (Australia)".  Click Apply.  Then change it back to "English (US)" and click Apply and click OK to close it out.

The application works perfectly now.  The Microsoft support guy was very helpful and quick to locate a support article that cleared this up.  942460.  Go figure.

No comments: