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
- :
- .NET Precompile Assembly does not work
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
Jun 08, 2011
04:38 AM
.NET Precompile Assembly does not work
Hi,
I am working on a Basic MSI project.
As I just upgraded to IS 2011, I realized that the ".NET Precompile Assembly" still doesn't work.
It wasn't working well in previous versions of InstallShield, especially since the release of .NET 2.0, but now, it no longer works at all.
Whenever you set the ".NET Precompile Assembly" to "Yes", it creates a system search for the ngen executable.
The problem is that the corresponding entry in the "Signature" table specifies MinVersion = 4.0 for the ISJITCOMPILEATINSTALLSIGNATURE entry.
It means the precompilation will not work at all if .NET v4.0 is not installed on the target PC.
I think Flexera should really move to a better implementation of this .NET precompilation scheme.
The way the system search is created, and then the automatically generated Custom Actions "ISJITCompileActionAtInstall" and "ISJITCompileActionAtUnInstall" just don't do a proper job.
Quite a few threads have already been written on the topic.
Therefore, this precompilation feature remains useless in IS 2011.
Recommendation to the IS development team:
I am working on a Basic MSI project.
As I just upgraded to IS 2011, I realized that the ".NET Precompile Assembly" still doesn't work.
It wasn't working well in previous versions of InstallShield, especially since the release of .NET 2.0, but now, it no longer works at all.
Whenever you set the ".NET Precompile Assembly" to "Yes", it creates a system search for the ngen executable.
The problem is that the corresponding entry in the "Signature" table specifies MinVersion = 4.0 for the ISJITCOMPILEATINSTALLSIGNATURE entry.
It means the precompilation will not work at all if .NET v4.0 is not installed on the target PC.
I think Flexera should really move to a better implementation of this .NET precompilation scheme.
The way the system search is created, and then the automatically generated Custom Actions "ISJITCompileActionAtInstall" and "ISJITCompileActionAtUnInstall" just don't do a proper job.
Quite a few threads have already been written on the topic.
Therefore, this precompilation feature remains useless in IS 2011.
Recommendation to the IS development team:
- Read the following threads carefully:
- http://community.flexerasoftware.com/showthread.php?t=189232
- http://community.flexerasoftware.com/showthread.php?t=196599
- http://community.flexerasoftware.com/showthread.php?t=189232
- And implement this .NET precompilation properly once for all!
(1) Reply
Jun 08, 2011
09:50 AM
This won't fix the rest of the problems you describe, but the requirement for 4.0 can be addressed by changing your .NET Framework File Locations settings on the .NET tab of Tools > Options. If you only require the .NET 2.0 framework, for example, point to the .NET 2.0 framework folders, and the search should reflect that version.
As for the rest, we are aware that the .NET Precompile Assembly option's implementation is, um, not that great, and are tracking the request to improve it as #IOC-000061592.
As for the rest, we are aware that the .NET Precompile Assembly option's implementation is, um, not that great, and are tracking the request to improve it as #IOC-000061592.