# Friday, 21 May 2004

More MSI Info - don't use Script Actions.

VBScript (and Jscript) MSI CustomActions suck.  

... you're not really using VBScript for your CustomAction, are you?"

Oh great, having yesterday decided to use 3 lines of JScript to solve a tricky little problem and improve the function of the Zeepe MSI it's about to get blown out of the water....

... attached one of the many emails that I send to people when they are having problems using VBScript for CustomActions.  In those emails, I always suggest that script never be used for CustomActions in MSI. 

Its not getting any better.....

What I don't understand is why people completely disregard dire warnings that certain technologies should not be used in certain circumstances.  Yes, I understand it is extremely easy to write CustomActions in VBScript.  No, that doesn't make it a good thing to use in your install.

Because I've not seen any dire warnings before. Three reasons are listed that constitute the dire warning - go read. 2 don't apply for me (its 3 lines of JScript that is robust and doesn't need debugging [1]), but the last is the killer:

3.  Anti-virus products kill them.  This one just killed me.  A couple years after Office banned the use of scripting for CustomActions, Visual Studio shipped their first MSI setup.  They decided it would be okay if there were a few script CustomActions.  When customers got the product, PSS started getting reports of the Visual Studio setup mysteriously failing and rollingback.  After some very long calls, PSS discovered that if the users' anti-virus programs were disabled the installations would succeed.  Turns out many of the top name anti-virus programs considered the scripts hosted by the Windows Installer to be virus and would kill the scripts off failing the Visual Studio install.

[via when setup isn't just xcopy]

Ho hum, keep following the blog to see what else is/isn't recommended.

[1]. All it was doing was extracting the parent path of a filename. I was wanting to find the installation directory of a component; the best I could do was find the file in the component.

#    Comments [0] |
Comments are closed.