some computers, the “Windows Installer” is retriev

2019-08-18 22:28发布

I have packaged a C# application using VSI_bundle.exe, and when it is installed on some PC's, the following message appears when trying to run the application.

Windows Installer >>> "Please wait while Windows configures (Product Name)"

The application will then run fine, but when I turn it off and back on again, I get the same situation again. How can I fix this?

3条回答
甜甜的少女心
2楼-- · 2019-08-18 22:38

Check your event viewer for windows installer related messages. Most of the time it will show the componentID that triggers the repair that Phil mentions. Take this GUID and search your installer or use a tool like InstEd! to open the MSI and search for the guid in the components table.

查看更多
We Are One
3楼-- · 2019-08-18 22:40

As others have pointed out, this seems to be a Windows Installer self-repair or "resiliency" issue.

Launching your application via an "advertised shortcut" (good Symantec article on the topic linked) will trigger a key path check for your MSI to determine if your product is properly installed. During this process a discrepancy is found, and a self-repair is triggered to install what is missing.

In certain cases the discrepancy can not be resolved by the self-repair, and it then keeps repeating in vain. Essentially you need to determine what component causes the discrepancy and hence triggers the repair.

Perhaps you can try Stefan Kruger's msifaq first, it is terse and to the point: Windows Installer launches unexpectedly, for no obvious reason.

I have written about self-repair too many times, one of the shorter answers might be this one: Why does the MSI installer reconfigure if I delete a file?


For future reference I include some links on the topic of Windows Installer self-repair or "resiliency":

查看更多
兄弟一词,经得起流年.
4楼-- · 2019-08-18 22:50

The message dialog means that the installed product is being repaired because it's damaged, not the same as when first installed. The Windows Event Log (Application) will have an MsiInstaller entry saying something about the ProductCode and the component that is missing.

It's a feature of Windows Installer that it repairs installed items that get removed, so if the application changes or removes files or registry entries then Windows will want to reinstall them. It's the same as going to Programs&Features and doing a Repair on the product.

Fixing it depends on why it's repairing. For example, is the app deleting files or registry entries, and if so then why?

Sometimes people install the MSI with DISABLEADVTSHORTCUTS set to 1 to prevent the shortcuts from doing the repair, but that cannot prevent all repairs, and may be disguising the fact that the app is removing required files.

https://msdn.microsoft.com/en-us/library/windows/desktop/aa368297(v=vs.85).aspx

查看更多
登录 后发表回答