[wix-users] Bundle: MSI Detects Installed=00:00:00

Bryan Dam bryand at recastsoftware.com
Tue Mar 2 18:19:05 PST 2021


Thanks for the reply Jacob!

I'm assigning InstallProxy in the BA and that part's working perfectly at the moment and actually has been for over a year.  If the BA says install Proxy then proxy installs if it says don't install proxy then proxy doesn't install.  It did take me a while to get the hang of the InstallCondition property but I eventually figured it out.

Here's the plan lines from the log.  Let me know if that's not what you were after:
Plan begin, 4 packages, action: Install
Skipping dependency registration on package with no dependency providers: NetCore3.1
Setting string variable 'WixBundleLog_NetCore3.1' to value 'C:\Users\bdam-adm\AppData\Local\Temp\Server_20210302080554_000_NetCore3.1.log'
Setting string variable 'WixBundleRollbackLog_RCT.Server.Installer' to value 'C:\Users\bdam-adm\AppData\Local\Temp\Server_20210302080554_001_RCT.Server.Installer_rollback.log'
Setting string variable 'WixBundleLog_RCT.Server.Installer' to value 'C:\Users\bdam-adm\AppData\Local\Temp\Server_20210302080554_001_RCT.Server.Installer.log'
Skipping dependency registration on package with no dependency providers: RestartAppPool
Setting string variable 'WixBundleLog_RestartAppPool' to value 'C:\Users\bdam-adm\AppData\Local\Temp\Server_20210302080554_002_RestartAppPool.log'
Setting string variable 'WixBundleRollbackLog_RestartAppPool' to value 'C:\Users\bdam-adm\AppData\Local\Temp\Server_20210302080554_002_RestartAppPool_rollback.log'
Condition 'InstallProxy ~= "True"' evaluates to false.
Planned package: NetCore3.1, state: Absent, default requested: Present, ba requested: Present, execute: Install, rollback: None, cache: Yes, uncache: No, dependency: None
Planned package: RCT.Server.Installer, state: Absent, default requested: Present, ba requested: Present, execute: Install, rollback: Uninstall, cache: Yes, uncache: No, dependency: Register
Planned package: RestartAppPool, state: Absent, default requested: Present, ba requested: Present, execute: Install, rollback: Uninstall, cache: Yes, uncache: No, dependency: None
Planned package: RCT.Proxy.Installer, state: Absent, default requested: Absent, ba requested: Absent, execute: None, rollback: None, cache: No, uncache: No, dependency: None
Plan complete, result: 0x0 [0BF0:0DF8][2021-03-02T08:06:45]i299: Plan complete, result: 0x0

In both scenarios the Server install is called and in the bundle logs I see, character-for-character the same call in each:
Applying execute package:RCT.Server.Installer, action: Install, path: C:\ProgramData\Package Cache\{F156B163-5581-4F85-A180-22813BB43B3E}v4.2.2002.0\Server.msi, arguments: ' ALLUSERS="1" ARPSYSTEMCOMPONENT="1" MSIFASTINSTALL="7" CERTIFICATETYPE="SelfSigned" SELECTEDCERTIFICATE="" SERVERNAME="SERV2019_1.corp.domain.com" IISPORT="444" SQLSERVER="localhost\SQLEXPRESS" SQLPORT="" LICENSEPATH=""'

It's just weird.  At no point should the proxy install have any impact on the server install.  It happens after it for crying out loud.

So apart from the whole proxy thing: any ideas why would an MSI populate the Installed property with 00:00:00 on initial install?

        Thanks again,
             Bryan



From: Hoover, Jacob <Jacob.Hoover at greenheck.com>
Sent: Tuesday, March 2, 2021 8:44 PM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Cc: Bryan Dam <bryand at recastsoftware.com>
Subject: RE: Bundle: MSI Detects Installed=00:00:00

You haven't defined how you are assigning InstallProxy, but I don't think it's going to do what you think it's going to do.

https://wixtoolset.org/documentation/manual/v3/xsd/wix/msipackage.html<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwixtoolset.org%2Fdocumentation%2Fmanual%2Fv3%2Fxsd%2Fwix%2Fmsipackage.html&data=04%7C01%7Cbryand%40recastsoftware.com%7C6cc76afd676d47076fce08d8dde5fe93%7C9315bb44634846c6bd378880b87e774e%7C0%7C0%7C637503327680958264%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=pbPbdAeveUWkIE8Mxxqxx1jI%2FzefaQbbe4lSsDAy8dg%3D&reserved=0>


InstallCondition
String
A condition to evaluate before installing the package. The package will only be installed if the condition evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified, the package will be uninstalled.

That being said, we would need a bit more of the logs to try to figure out your underlying issue.  A plan dump would be handy.


From: wix-users <wix-users-bounces at lists.wixtoolset.org<mailto:wix-users-bounces at lists.wixtoolset.org>> On Behalf Of Bryan Dam via wix-users
Sent: Tuesday, March 2, 2021 2:02 PM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org<mailto:wix-users at lists.wixtoolset.org>>
Cc: Bryan Dam <bryand at recastsoftware.com<mailto:bryand at recastsoftware.com>>
Subject: [wix-users] Bundle: MSI Detects Installed=00:00:00

I have a bundle with a custom BA that allows the user to, among other things, select if one of the bundle's MSI packages gets installed.

The chain looks something like this:
<Chain>
<ExePackage Id="NetCore3.1" ... />
<RollbackBoundary />
<MsiPackage Id="Server" ... >
<ExePackage Id="RestartIISAppPool" ... />
<MsiPackage Id="Proxy" ... InstallCondition="InstallProxy ~= "True"" />
</Chain>

Everything works just fine except for one scenario: If InstallProxy does not equal true then the Server MSI package doesn't install correctly. In this case the Server MSI log shows "PROPERTY CHANGE: Adding Installed property. Its value is '00:00:00'" indicating that it's already installed (?). Which doesn't make any sense because this is a fresh OS where none of our tools have ever been installed. It's a VM that I revert for each test. We have a bunch of logic to make sure we only configure IIS on initial install (ie: NOT Installed). If InstallProxy is true then the Installed property doesn't exist in the server MSI log and the Server MSI properly runs our IIS configuration and everything works.

The bundle log shows that character-for-character it's calling the Server MSI the exact same way. The InstallProxy variable has nothing to do with the Server install; it's not a condition or passed to it as a variable. And yet it impacts it somehow.

This makes no sense to me. Anyone have any ideas?

Thanks,
Bryan

____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/<https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.firegiant.com%2F&data=04%7C01%7Cbryand%40recastsoftware.com%7C6cc76afd676d47076fce08d8dde5fe93%7C9315bb44634846c6bd378880b87e774e%7C0%7C0%7C637503327680968263%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=D3QsuzVdyKX0d29z7mbGoQVrgMA%2Fj5xc7w5%2FdfrxjcA%3D&reserved=0>
NOTE: This email was received from an external source. Please use caution when opening links or attachments in the message.



More information about the wix-users mailing list