Context: Every week the dedicated Windows Installer (MSI) resources of Product Support Services (PSS) and members of the MSI team have a conference call to discuss PSS issues of the week including ones that may result in Requests For Change (RFC).
Instance: The following are the take-aways from call on Thursday October 20th.
Question 1: Can the costing for user specific directories that are not being added to during the deployment be disabled?
Context 1: Some packaging tools add entries to the directory table that they do not actually use. The initialization for the costing on these dangling references take time thus slow down an install.
Answer 1: Costing cannot be disabled.
Workaround 1: Package Provider: Update ones the package tools. Package Consumer: Transform out the dangling references.
Question 2: Is there a way to have a per-machine Major Upgrade remove a per-user installation?
Context 2: Customer has several customers that have installed their product as Per-Machine. Customer has a Major Upgrade and some users have installed this as Per-Machine and are now seeing multiple entries in the ARP.
Answer 2: No, Per-machine can only upgrade Per-machine as Per-User can only upgrade Per-User installs.
Workaround 2: One could have wrapper code that would uninstall the Per-User install and then initiate a Per-Machine install. Alternatively one Custom Action to detect the InstallState of the previous install and then set the ALLUSERS property should also work.
Question 3: Is there a way to have a substorage in an MSM merged into a MSI?
Context 3: Customer has a type 23 custom action that they want to distribute via merge module.
Answer 3: No. Blogged earlier in week as How do I merge an MSM with a nested MSI in it's substorage into a MSI?
Workaround 3: Nested MSI’s are *not* the way to go, the customer should be looking at other options. We are working on having the Nested installs depreciated in the SDK documentation for the Vista B2 refresh. The documentation in KB 306439 is also wrong in that files added to the binary table are not substorage, they are streamed and a change to the KB article has been requested.
- I used MSITRAN to create a transform from Company Order Entry.msi and Company Printing.msi (succeeded)
- I used MSITRAN -a to apply the transform to Company Order Entry.msi (succeeded)
- Trying to install Company Order Entry.msi I get a 2356 error.
MSI (s) (D4:FC) [15:30:27:217]: Product: Company Printing -- The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2356. The arguments are: _B2ED254AC2D217DC5D64C4A8DDC5E148, ,
Action ended 15:30:27: InstallFinalize. Return value 3.
Answer 4: The Media Table is being changed by the MST. VSI generated packages are bad for transforms thus patches as they alter the media table build to build.
Workaround 4: Do not use VSI when one needs to produce transforms or patches.
Content credit also belongs to
- Carolyn, MSI Team Dev Lead. You can get other Carolyn insights about developing for Windows Installer from the Windows Installer Chat Archives
- Nitin, Phil, Alden, and Erik, Microsoft Support Team