This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- System Search View
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
Sep 13, 2010
09:46 AM
Precompile 64-bit Assembly
I have a 64-bit .NET assembly that I wish to precompile (NGEN) in my InstallScript MSI project. It appears that the compiled MSI attempts to call the 32-bit version of NGEN.exe.
I have verified that "64-bit Component" is set to yes for the component and have also tried setting the path to InstallUtilLib.dll to the 'Framework64' version under Tools->Options->.NET.
After running the MSI, I get nothing in the 64-bit NGEN.log (and nothing in the Native Image Cache). Inspecting the 32-bit NGEN.log I see the following:
[CODE]09/13/2010 10:27:02 [308]: Command line: C:\Windows\Microsoft.NET\Framework\v2.0.50727\ngen.exe install C:\Program Files\\core.dll /nologo /silent
09/13/2010 10:27:02 [308]: Uninstalling assembly C:\Program Files\\core.dll because of an error during compilation: Failed to compile C:\Program Files\\core.dll because this image is not a valid Win32 application.
09/13/2010 10:27:02 [308]: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
09/13/2010 10:27:02 [308]: ngen returning 0xffffffff[/CODE]
Can someone point me to the appropriate setting to ensure the assembly is precompiled as 64-bit? According to the documentation this should be controlled via the InstallUtilLib setting, but as you can see that doesn't seem to work.
Thanks,
Ryan
I have verified that "64-bit Component" is set to yes for the component and have also tried setting the path to InstallUtilLib.dll to the 'Framework64' version under Tools->Options->.NET.
After running the MSI, I get nothing in the 64-bit NGEN.log (and nothing in the Native Image Cache). Inspecting the 32-bit NGEN.log I see the following:
[CODE]09/13/2010 10:27:02 [308]: Command line: C:\Windows\Microsoft.NET\Framework\v2.0.50727\ngen.exe install C:\Program Files\
09/13/2010 10:27:02 [308]: Uninstalling assembly C:\Program Files\
09/13/2010 10:27:02 [308]: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
09/13/2010 10:27:02 [308]: ngen returning 0xffffffff[/CODE]
Can someone point me to the appropriate setting to ensure the assembly is precompiled as 64-bit? According to the documentation this should be controlled via the InstallUtilLib setting, but as you can see that doesn't seem to work.
Thanks,
Ryan
(1) Reply
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
Sep 13, 2010
12:18 PM
It appears I can resolve this issue by modifying the 'InstallRoot' property under System Search View. There is a checkbox to search the 64-bit registry for the location of NGEN.exe. Checking this option fixed my problem.
Ryan
Ryan