cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
ASyD_Barret
Level 2

Instantiating COM object (via InstallScript CreateObject() function call)) fails

Hi guys,

I'm currently upgrading/porting our installer setup to a new platform update of our application which also includes upgrading from IS12 to IS 2012.

I made the conversion to the new IS 2012 version and made the required changes in the application setup structure (played along with components, etc.)

I was able to build me an installer kit of such an updated MSI setup and now I'm in the phase of actually running the installation of such a resulting kit and troubleshooting the installation process itself.

Now here comes my problem: I have serval InstallScript CustomActions that make use of MSXML component XML-DOM-Object.
The previous functional version of my MSI setup (that was running fine when built by IS12) contained the following code that was used to create a new DOM-XML object instance: set doc = CreateObject("Msxml2.DOMDocument.4.0");

As soon as the code runs this statement (observed while IScript-debugging) the current CA function is just bailed out - no error message, no exception (tried with try-catch blocks), no message in the installation log file - and causes a complete rollback (which is expected in case of serious problem experienced during an installation).

The thing is I simply don't know why the mentioned call fails > so I just dont know how to solve it.
I tried serveral things to remedy this (did not suceed, though):
- i tried other combinations of the COM app. (Msxml2.DOMDocument.6.0 ... or even the 'version independent' one - Msxml2.DOMDocument)
- i made me an external JScript that used the same approach to make a new instance of DOM-XML object (var dom = new ActiveXObject("msxml2.DOMDocument");) ... this one worked fine, so I presume this not a case of a missing/not configured COM MSXML component
- i swapped the parent CA from a deferred action to an immediate execute one... did not help
- i even tried instantiating a different COM object (set obj = CreateObject("WScript.Shell");) ... it misbehaved in the very same way - the function just finished there and failed

The bottom line: does anyone know why a call to CreateObject() could cause such an odd result? What am I doing wrong? Are the changes done to InstallShield 2011/2012 behind this?
Labels (1)
0 Kudos
(1) Reply
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

We've tried CreateObject in a sample InstallScript project and in an InstallScript custom action in a sample Basic MSI project. In both cases the CreateObject call succeeds and returns a usable object (we tested with the Msxml2.DOMDocument.4.0 progid).

Is this issue occurring on any machine you test this project on? Can you reproduce this behavior on the same machines with a sample project?
0 Kudos