ISWIX, LLC View Christopher Painter's profile on LinkedIn profile for Christopher Painter at Stack Overflow, Q&A for professional and enthusiast programmers

September 23, 2009

Favorite InstallShield Automation Interface (Feature)Bug

Does anyone actually use the InstallShield automation interface? I'm guessing not due to huge number of bugs, bad behaviors, poor documentation and missing functionality that I routinely step into every time I try.

I'm too tired to recap every bug I've ever found, so here's my new favorite.

Let's say you are calling the ISWiProject.AddFeature( string ) method and you pass it a feature that already exists. What would you expect the proper behavior to be?

a) throw an exception that tells you that you violated a primary key constraint

or

b) throw a modal dialog telling you that you violated a primary key constrant and then swallow the exception.

Argh!!!! Enough said? I guess that's why we pay tens of thousands of dollars for maintenance and then never get our bugs fixed. Just shoved along to new releases with more bugs.

4 comments:

Michael Urman said...

Are you calling your automation script with a language that can handle exceptions properly (C#, full VB, etc.), or with something like VBS via CScript? I'm pretty sure the latter turns exceptions into modal dialogs...

Christopher Painter said...

I'm using C# with a COM reference. I'm coding more defensively now that I know the behavior.

ISWiFeature existingFeature = _project.ISwiFeatures[ featureName];
if( null == existingFeature )
{
ISWiFeature newFeature = _project.AddFeature( featureName );
...
}
else
{
throw new Exception("Feature already exists.");
}

Sorry for coming off so irritated. I did some automation work last year and I had to convert to XML and use DTF because of interface issues. It just seems like a very untested part of the system that is always difficult to use and fragile.

Unknown said...

Heh. No problems. I avoid them by not using Windows.

Have you seen the Add/Remove programs button in Ubuntu? Unlike in Windows, the "ADD" part works. Installation is soooo much easier in Linux, or for that matter OSX. Why anyone who knows anything about operating systems uses Windows is beyond me.

Christopher Painter said...

I'm not sure what your comment has to do with the ISAuto interface but heh, everyone is entitled to their opinion.

That does remind me, I should get around to trying QMX for SCCM on Linux.