What can cause Error 2902 when installing an MSI? - wix

One of our MSI's has started failing with Error 2902. It'll get most of the way through the installation, pop an error box, and then back out the install. We haven't made any major changes to the installer since the last working version.
Running msiexec with logging turned on gives a more informative message:
Action 17:21:22: RegisterProduct. Registering product
Error 2902: Operation ixoFileCopy called out of sequence
This comes immediately after the "WriteRegistryValues" section. Does anyone know what causes the call to ixoFileCopy? I'm guessing the resolution will involve changing the sequence of the "RegisterProduct" step, but I'm not sure what it should proceed.
Thanks for any help!

It turns out that in our case this was happening due to a data file getting too big for MSI to handle without chunking the cab. This thread mentions the issue and one possible workaround.

I had the same error.
Apparently, there were files missing or corrupted (network error?). The problem has been solved after copying the whole folder again.

I've also seen this error when components are provided with blank guids.
e.g.
<Component Id="cmp_MyFailingComponent" Guid="">
<File Id="f_myFile"
Assembly=".net"
Source="C:\Program Files\MyFile.dll"
KeyPath="yes"/>
</Component>

I've seen this error when some of the database column fields are longer than the column width.
I had converted an MSI into an InstallShield project, made a few additions, and built a new MSI - it built without any errors. Installation then failed with error 2902.
The components that failed had component names longer than the allowed 72 characters. (see Component table) The original MSI worked fine despite having the long names, but I guess they caused InstallShield to improperly build the MSI somehow. Not InstallShield's fault, although I do think it should have raised an error during the build.

Related

SideBySide issue with ArcGISRuntime SDK version100.11

Trying to update my WPF application from the ArcGIS Runtime SDK version 100.6 to 100.11. I used the existing style in the WiX package to update the dll's so that all I had to do was ensure all the shader .cso files were accurate in the Components. Here is the screen shot of my dll's that are configured:
When I try to run the application, I get an error that it cannot access the RuntimeCoreNet100_11.dll. In the Event Viewer I get the following message:
In running the SxsTrace program, for the runtimecoreAssembly, it states the Parser "Did not find manifest for culture Neutral".
Any help here would be very appreciated.
Update
per the instructions given in the comment, i added the manifest file to the dependency components in the component group pictured above. this allowed my app to start, but immediately crashed with a KERNELBASE.dll error. Anyone familiar with fixing those?
Looks like you're missing the manifest files. There should be 4 files to deploy to each clientXX folder: runtimecore.dll, runtimecoreAssembly.manifest, RuntimeCoreNet100_11.dll and RuntimeCoreNet100_11.WPF.dll

Wix Duplicate component Guid's issue while installing patch

We have MSI version 12.2.1.0 released and there were new components added in Fix 1 which is now released has 2 components with same GUID. We have identified issue in Fix2 as patch doesn't seem to overwrite/replace the files due to duplicate GUID for the components the feature which is referring the components is getting skipped while installing Fix2.
How to resolve the duplicate GUID issue in Fix2.We cannot go back to fix1 as it is been delivered to customer.
First component
How to safely remove the duplicate GUID to make patch install the feature without skipping.
Log shows
Line 1042: MSI (c) (9C:7C) [11:47:25:815]: SELMGR: Component 'xyz_shortcut18' is registered to feature 'P', but is not present in the FeatureComponents table. Removal of components from a feature is not supported!
ICE warning : unfortunately got ignored while generating patch
warning LGHT1137: Component/#Id='p19.arx' has a #Guid value '{36B8C853-9E9E-48D7-BDCD-E4D6C376B781}' that dupli
cates another component in this package. This is not officially supported by Windows Installer but works as long as all components have mutually-exclusive conditions.
We are using wixout files to generate the transform Pure patch process.
To fix Component Rule violations you need to use a major upgrade that is scheduled very early (after InstallValidate). That will remove the "bad package" before installing the fixed package avoiding the Component Rule violations.
After that, then you can attempt more advanced upgrade/patching scenarios.

Pycharm, keep getting Flow Tool panel with "Error: Flow executable path is incorrect"

After updating to Pycharm 2017.2.1 I got this Flow Tool panel (although not having flow installed) which pops up and I can not get rid of it.
This appears to be a bug. A workaround is mentioned:
edit .idea/workspace.xml and remove the
<component name="JsFlowSettings">
...
</component>
section
Another workaround which seemed to work for me:
select Flow under [file/settings/languages&frameworks/javascript] as Javascript Language version and untick all flow settings options that then appear.

How to handle error message when a package fails with a managed bootstrapper application

I created a setup that consists of a package, a managed bootstrapper application, and a bundle.
I notet that when the package fails, under certain circumstances the Error event is not called. I already looked at InstallationViewModel.cs from the WixBA setup, but did not find a solution.
How can I correctly handle this?
Details:
The package creates a
<firewall:FirewallException ... />
and I noted that when the “Windows Firewall” service is not running, this will fail. (I don’t know whether that’s a bug or a feature, but this question is not about this.)
The log file of the package contains:
ExecFirewallExceptions: Installing firewall exception2 Foo (C:\Program Files (x86)\Foo\Foo.exe)
ExecFirewallExceptions: Error 0x800706d9: failed trying to find existing app
ExecFirewallExceptions: Error 0x800706d9: failed to add/update application exception for name 'Foo', file 'C:\Program Files (x86)\Foo\Foo.exe'
CustomAction WixExecFirewallExceptionsInstall returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
The main log file contains:
e000: Error 0x80070643: Failed to install MSI package.
e000: Error 0x80070643: Failed to execute MSI package.
e000: Error 0x80070643: Failed to configure per-machine MSI package.
A rollback is executed, and that all works fine, but no error message is displayed to the user.
Which event should I handle to display an error message to the user? Any other way to handle this correctly?
You can ignore the error by adding IgnoreFailure="yes" in the <firewall:FirewallException> element.
From the documentation http://wixtoolset.org/documentation/manual/v3/xsd/firewall/firewallexception.html
Note: This will not configure the firewall rules if an error occurs, but if the firewall is disabled then it should not be an issue.

reasons and fixes for MSB8008 error

What can be the possible reasons of the MSB8008 error be and how to fix it?
For example a error message of this is:
error MSB8008: Specified platform toolset (v110) is not installed or invalid. Please make sure that a supported PlatformToolset value is selected.
This error message is an indication for a version conflict of multiple msbuild evironments.
To fix this searching and using the absolute path of the right msbuild helped for me.