Installation error 2324 on x64 Windows

Jun 21, 2011 at 10:46 PM
Edited Jun 23, 2011 at 1:14 AM

When my dotnetinstaller generated installation (my installation calls a 64 bit or 32 bit .msi file depending on the OS architecture) is run on a 64 bit Windows and it is an upgrade from a previous version of my software, I get the following error:

"The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2324."   (I do not get the error on a fresh install of my software, only an upgrade)

From the windows event viewer I see the installation is attempting to use one of my dll files that is in the c:\windows\system32 directory. This dll is loaded when the .msi file is executed. This dll does exist in the c:\windows\system32 directory I see it when I navigate to this directory.

If I run the .msi file directly, the installation succeeds. If I remove the dll from the system32 directory and install via the dotnetinstaller generated setup executable, the installation succeeds. If I keep the dll file in the system32 directory and copy the dll file to the syswow64 directory, the installation succeeds.

If I launch the msi using msiexec.exe it succeeds. However, if I launch the msi using c:\windows\syswow64\msiexec.exe I get the same error message as above. I notice that when I run my DNI installation and run task manager, that the 32 bit msiexec.exe is running, not the 64 bit one.

I see from other posts that this could be related to the issue where a 32 bit DNI installation is attempting to run a 64 bit msi installer file. When I run the msi file directly, the 64 bit msiexec.exe file is executed. When I run the DNI installation, the 32 bit msiexec.exe file is executed. I thought that if I installed dotnetinstaller 2.0 Beta and set the "disable_wow64_fs_redirection *" flag to True, that this would fix my issue. It has not, the 32 bit version of msiexec.exe is still executed and I still get the same error.

Can anyone help me figure out how to get around this issue?



Jun 22, 2011 at 9:16 PM

Well I see why the 2.0 Beta did not solve the problem. the disable_wow64_fs_redirection flag is not available for the MSI component. Having the disable_wow64_fs_redirection flag for the MSI component would allow the 64bit version of msiexec.exe to be called instead of the 32 bit version.


Jun 22, 2011 at 9:21 PM

I should note that the disable_wow64_fs_redirection flag in the 2.0 Beta of the DotNetInstaller is available at the install level and only some of the components. The MSI component being one that it is not available for. I set the install level disable_wow64_fs_redirection flag to True for the test that failed that I mentioned in my first post.


Jun 23, 2011 at 12:33 AM
This discussion has been copied to a work item. Click here to go to the work item and continue the discussion.
Jun 23, 2011 at 12:34 AM

You're right. I created a feature request. It should be relatively straightforward to implement given that all the code to do this is already written - patches are welcome!

Jun 23, 2011 at 12:39 AM

Thanks for the response.

I did download the code and saw where I might change the code to accommodate MSI files, but I as unable to successfully build the code using VS2010. Plus the user interface would need to know about the new property, I'm not well versed in xaml, etc. sorry :-(

Is there any estimate on when a patch might be forthcoming? ;-)


Jun 23, 2011 at 12:42 AM

You need VS 2005 to build, this stuff still runs on Windows 98 :) See the developer contributing documentation in the CHM help file. You don't need to modify anything except a .cs file for new properties. As with all open-source projects there's no estimate - hire a dev to build it for you. I got my hands full these days, I'll be happy to code review a patch.

Jun 23, 2011 at 12:48 AM

Yeah I figured the estimate question was a bit bold, but had to try. ;-)

I will try to get it to build under VS 2005, attempt the changes, and submit a patch.