This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Chained .MSI not installing - What's wrong?
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Apr 16, 2009
06:54 PM
Chained .MSI not installing - What's wrong?
Added the ASP.NET 2.0 AJAX Extensions 1.0 MSI as a chained msi to an installer package that is also installing an ASP.NET web site. The AJAX msi had no install conditions and is not installed on the target machine.
At runtime I get the following lines in the log file:
MSI (s) (6C:84) [16:16:26:081]: Doing action: ISChainPackagePrepare
Action ended 16:16:26: caExtractIISSuppFiles. Return value 1.
MSI (s) (6C:70) [16:16:26:097]: Invoking remote custom action. DLL: C:\WINDOWS\Installer\MSI471.tmp, Entrypoint: ISChainPackages
Action start 16:16:26: ISChainPackagePrepare.
MSI (s) (6C:84) [16:16:26:237]: Doing action: InstallInitialize
Action ended 16:16:26: ISChainPackagePrepare. Return value 1.
MSI (s) (6C:84) [16:16:26:237]: Machine policy value 'AlwaysInstallElevated' is 0
MSI (s) (6C:84) [16:16:26:237]: User policy value 'AlwaysInstallElevated' is 0
MSI (s) (6C:84) [16:16:26:237]: Embedded Chainer - Searching for a valid Embedded Chainer to run
MSI (s) (6C:84) [16:16:26:237]: Embedded Chainer - Skipping chainer: ISChainPackagesPost (condition is false)
MSI (s) (6C:84) [16:16:26:237]: BeginTransaction: Locking Server
MSI (s) (6C:84) [16:16:26:237]: SRSetRestorePoint skipped for this transaction.
MSI (s) (6C:84) [16:16:26:237]: Server not locked: locking for product {9D3A068A-BFE5-48C2-87F0-66C8E731C59C}
Action start 16:16:26: InstallInitialize.
MSI (s) (6C:84) [16:16:26:331]: Doing action: ISChainPackageRollback
Action ended 16:16:26: InstallInitialize. Return value 1.
MSI (s) (6C:84) [16:16:26:347]: Note: 1: 2205 2: 3: MsiPatchCertificate
MSI (s) (6C:84) [16:16:26:347]: LUA patching is disabled: missing MsiPatchCertificate table
Action start 16:16:26: ISChainPackageRollback.
MSI (s) (6C:84) [16:16:26:347]: Doing action: ISChainPackageCommit
Action ended 16:16:26: ISChainPackageRollback. Return value 1.
Action start 16:16:26: ISChainPackageCommit.
MSI (s) (6C:84) [16:16:26:347]: Doing action: AllocateRegistrySpace
Action ended 16:16:26: ISChainPackageCommit. Return value 1.
When I look in the MsiEmbeddedChainer table in the Direct Editor, I see that the condition for ISChainPackagesPost is "IS_CHAINER_POST_COMMANDLINE AND NOT ISCHAINER". I was not able to find either of these two properties getting set in the log file.
Other miscenenous notes:
- Target OS is Windows Server 2003 SP2 Standard Edition
- Windows Installer 4.5 is installed (and rebooted)
- Rest of the installation install successfully and installed ASP.NET site works
- I've tried both streaming the file and running directly from [SOURCEDIR] with the file on DISK1
- ASP.NET AJAX MSI installs just fine running quitely and with full UI
- No other errors in the log file
- ASP.NET AJAX installs just fine
Any help would be greatly appreciated and I thank you in advanced 🙂
At runtime I get the following lines in the log file:
MSI (s) (6C:84) [16:16:26:081]: Doing action: ISChainPackagePrepare
Action ended 16:16:26: caExtractIISSuppFiles. Return value 1.
MSI (s) (6C:70) [16:16:26:097]: Invoking remote custom action. DLL: C:\WINDOWS\Installer\MSI471.tmp, Entrypoint: ISChainPackages
Action start 16:16:26: ISChainPackagePrepare.
MSI (s) (6C:84) [16:16:26:237]: Doing action: InstallInitialize
Action ended 16:16:26: ISChainPackagePrepare. Return value 1.
MSI (s) (6C:84) [16:16:26:237]: Machine policy value 'AlwaysInstallElevated' is 0
MSI (s) (6C:84) [16:16:26:237]: User policy value 'AlwaysInstallElevated' is 0
MSI (s) (6C:84) [16:16:26:237]: Embedded Chainer - Searching for a valid Embedded Chainer to run
MSI (s) (6C:84) [16:16:26:237]: Embedded Chainer - Skipping chainer: ISChainPackagesPost (condition is false)
MSI (s) (6C:84) [16:16:26:237]: BeginTransaction: Locking Server
MSI (s) (6C:84) [16:16:26:237]: SRSetRestorePoint skipped for this transaction.
MSI (s) (6C:84) [16:16:26:237]: Server not locked: locking for product {9D3A068A-BFE5-48C2-87F0-66C8E731C59C}
Action start 16:16:26: InstallInitialize.
MSI (s) (6C:84) [16:16:26:331]: Doing action: ISChainPackageRollback
Action ended 16:16:26: InstallInitialize. Return value 1.
MSI (s) (6C:84) [16:16:26:347]: Note: 1: 2205 2: 3: MsiPatchCertificate
MSI (s) (6C:84) [16:16:26:347]: LUA patching is disabled: missing MsiPatchCertificate table
Action start 16:16:26: ISChainPackageRollback.
MSI (s) (6C:84) [16:16:26:347]: Doing action: ISChainPackageCommit
Action ended 16:16:26: ISChainPackageRollback. Return value 1.
Action start 16:16:26: ISChainPackageCommit.
MSI (s) (6C:84) [16:16:26:347]: Doing action: AllocateRegistrySpace
Action ended 16:16:26: ISChainPackageCommit. Return value 1.
When I look in the MsiEmbeddedChainer table in the Direct Editor, I see that the condition for ISChainPackagesPost is "IS_CHAINER_POST_COMMANDLINE AND NOT ISCHAINER". I was not able to find either of these two properties getting set in the log file.
Other miscenenous notes:
- Target OS is Windows Server 2003 SP2 Standard Edition
- Windows Installer 4.5 is installed (and rebooted)
- Rest of the installation install successfully and installed ASP.NET site works
- I've tried both streaming the file and running directly from [SOURCEDIR] with the file on DISK1
- ASP.NET AJAX MSI installs just fine running quitely and with full UI
- No other errors in the log file
- ASP.NET AJAX installs just fine
Any help would be greatly appreciated and I thank you in advanced 🙂
(7) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Apr 16, 2009
11:46 PM
Have you tried to sign the package? This might have caused your rollback. It is looking for a certificate it cannot find.
Take a look at: http://msdn.microsoft.com/en-us/library/aa370342(VS.85).aspx
Take a look at: http://msdn.microsoft.com/en-us/library/aa370342(VS.85).aspx
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Apr 17, 2009
01:53 PM
I would normally expect to see more information in the log around ISChainPackagePrepare, particularly indications of which chained packages will or won't be installed. When a package will be installed, this action will set the IS_CHAINER_POST_COMMANDLINE property accordingly. Is this excerpt from a verbose log, created with /l*v or MsiLogging=voicewarmup? (If not, try creating one to see if there is further information.)
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Apr 17, 2009
04:52 PM
MichaelU wrote:
I would normally expect to see more information in the log around ISChainPackagePrepare, particularly indications of which chained packages will or won't be installed. When a package will be installed, this action will set the IS_CHAINER_POST_COMMANDLINE property accordingly. Is this excerpt from a verbose log, created with /l*v or MsiLogging=voicewarmup? (If not, try creating one to see if there is further information.)
I am positive the the MSIEXEC executed with Verbose logging and MsiLogging=voicewarmup. As I mentioned in the OP, there is no mention of IS_CHAINER_POST_COMMANDLINE anywhere in the log. Is there any other behaviour that would cause IS_CHAINER_POST_COMMANDLINE to not be set?
Attached is the full log excerpt.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Apr 17, 2009
05:33 PM
I looked more closely at our code, and we fail to log the case that neither Install nor Remove conditions evaluate to true - I'll get this fixed up but at least it tells us where to look. (If no package is being installed or removed, we don't set IS_CHAINER_POST_COMMANDLINE so it won't appear in the log.) What are the conditions for your chained package(s)?
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Apr 17, 2009
07:30 PM
MichaelU wrote:
I looked more closely at our code, and we fail to log the case that neither Install nor Remove conditions evaluate to true - I'll get this fixed up but at least it tells us where to look. (If no package is being installed or removed, we don't set IS_CHAINER_POST_COMMANDLINE so it won't appear in the log.) What are the conditions for your chained package(s)?
Just the standard "Not Installed". I've also tried with no condition at all with the same result. Ultimately, I'd like to tie installing this when the user picks a certain feature, but obviously I haven't gotten that far.
Interestingly, I can get two other .MSIs from Microsoft to act properly. Trying with the ASP.NET AJAX Web Extensions 1.0, it does not seem to complete the following sets as was done for AMO (Microsoft Analysis Services Management Objects)
Is there anything I can edit in the AJAX MSI to make it act nice?
Thanks
The following is what it looks like when I chain the the AMO .MSI:
MSI (s) (6C:C0) [16:07:16:505]: Doing action: ISChainPackagePrepare
Action ended 16:07:16: caExtractIISSuppFiles. Return value 1.
MSI (s) (6C:04) [16:07:16:520]: Invoking remote custom action. DLL: C:\WINDOWS\Installer\MSIB83.tmp, Entrypoint: ISChainPackages
Action start 16:07:16: ISChainPackagePrepare.
InstallShield 16:07:16: Marking chained package AMO2008 for installation
InstallShield 16:07:16: Extracting temp files for chained package AMO2008 to 'C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\{C97EB0FE-AF71-4C47-A8E3-DC710D0A82B9}'
InstallShield 16:07:16: Extracting file 'C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\{C97EB0FE-AF71-4C47-A8E3-DC710D0A82B9}\SQLSERVER2008_ASAMO10.msi' for chained package AMO2008
InstallShield 16:07:16: Marking chained package AMOMD2008 for installation
InstallShield 16:07:16: Extracting temp files for chained package AMOMD2008 to 'C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\{D1B22A7D-4040-45C8-B9B9-2B4BB9DFFAF0}'
MSI (s) (6C!90) [16:07:16:849]: PROPERTY CHANGE: Adding IS_CHAINER_POST_COMMANDLINE property. Its value is '/l"c:\log.log" /qb /iC:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\{C97EB0FE-AF71-4C47-A8E3-DC710D0A82B9}\SQLSERVER2008_ASAMO10.msi /qb /iC:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\{D1B22A7D-4040-45C8-B9B9-2B4BB9DFFAF0}\SQLSERVER2008_ASADOMD10.msi'.
MSI (s) (6C!90) [16:07:16:849]: PROPERTY CHANGE: Adding ISChainPackageCommit property. Its value is 'C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\{C97EB0FE-AF71-4C47-A8E3-DC710D0A82B9} C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\{D1B22A7D-4040-45C8-B9B9-2B4BB9DFFAF0}'.
MSI (s) (6C!90) [16:07:16:849]: PROPERTY CHANGE: Adding ISChainPackageRollback property. Its value is 'C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\{C97EB0FE-AF71-4C47-A8E3-DC710D0A82B9} C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\{D1B22A7D-4040-45C8-B9B9-2B4BB9DFFAF0}'.
InstallShield 16:07:16: Extracting file 'C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\{D1B22A7D-4040-45C8-B9B9-2B4BB9DFFAF0}\SQLSERVER2008_ASADOMD10.msi' for chained package AMOMD2008
MSI (s) (6C:C0) [16:07:16:849]: Doing action: InstallInitialize
Action ended 16:07:16: ISChainPackagePrepare. Return value 1.
MSI (s) (6C:C0) [16:07:16:849]: Machine policy value 'AlwaysInstallElevated' is 0
MSI (s) (6C:C0) [16:07:16:849]: User policy value 'AlwaysInstallElevated' is 0
MSI (s) (6C:C0) [16:07:16:849]: Embedded Chainer - Searching for a valid Embedded Chainer to run
MSI (s) (6C:C0) [16:07:16:849]: Embedded Chainer - Scheduled to run after install
MSI (s) (6C:C0) [16:07:16:849]: BeginTransaction: Locking Server
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Apr 20, 2009
11:30 AM
This isn't adding up. Have you examined the built msi to ensure the records you expect are in the ISChainPackage table? (It's not documented per se, but it's a direct mapping from what the view shows you.) Have you tried running this on another machine with the same behavior? If yes to both, can you share a copy with me to diagnose?
There are a number of gotchas with chaining, including that if a reboot is pending, chaining will be skipped; and if a package is already installed it won't generally be reinstalled. But even in those cases, we should still see the package scheduled or explicitly skipped in the log file.
There are a number of gotchas with chaining, including that if a reboot is pending, chaining will be skipped; and if a package is already installed it won't generally be reinstalled. But even in those cases, we should still see the package scheduled or explicitly skipped in the log file.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Apr 22, 2009
02:44 PM
MichaelU wrote:
This isn't adding up. Have you examined the built msi to ensure the records you expect are in the ISChainPackage table? (It's not documented per se, but it's a direct mapping from what the view shows you.) Have you tried running this on another machine with the same behavior? If yes to both, can you share a copy with me to diagnose?
There are a number of gotchas with chaining, including that if a reboot is pending, chaining will be skipped; and if a package is already installed it won't generally be reinstalled. But even in those cases, we should still see the package scheduled or explicitly skipped in the log file.
Turns out ASP.NET AJAX does not do a good job cleaning the registry on uninstall. After deleting all component GUID reference in the registry, the ASP.NET AJAX MSI installed as expected.
Oh well. Thanks so much for all your help. At the very least maybe someone else wont' have to go through this same issue with AJAX.
Thanks again