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.
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...
ReplyDeleteI'm using C# with a COM reference. I'm coding more defensively now that I know the behavior.
ReplyDeleteISWiFeature 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.
Heh. No problems. I avoid them by not using Windows.
ReplyDeleteHave 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.
I'm not sure what your comment has to do with the ISAuto interface but heh, everyone is entitled to their opinion.
ReplyDeleteThat does remind me, I should get around to trying QMX for SCCM on Linux.