在app.config中使用supportedRuntime元素时,我应该使用哪个ngen.exe?

时间:2012-10-11 06:37:55

标签: .net .net-3.5 app-config nsis ngen

我正在将.net 2.0和.net 4.0的ngen.exe与NSIS安装程序中的.net 3.5应用程序捆绑在一起。我没有找到任何其他方法,所以我捆绑它。

我在app.config文件中有以下内容。

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
</startup>

我也在使用其他没有上面代码的app.config。其他app.config仅在PC上安装.net 3.5时使用。我的问题是如果用户没有安装.net 3.5,我应该使用哪个版本的ngen.exe?

1 个答案:

答案 0 :(得分:3)

你不能“捆绑”ngen.exe,这是不允许的。许可证明确禁止它,在VS安装目录中读取redist.txt。

这不仅仅是为了让你的生活变得困难,而是为了阻止你犯错误。使用这样的.exe.config文件,您要求应用程序与.NET 4一起运行,无论它是针对什么构建的。您要求使用v4.0抖动,因此只有v4.0版本的ngen.exe是合适的。已经安装在机器上,因此不需要“捆绑”。如果未安装,则运行该应用程序也将无效。