哪个ngen在x64系统上用于x86 app?

时间:2015-02-05 10:32:39

标签: c# .net ngen

我决定问这个问题,因为没找到明确的答案。我的WPF程序是x86(.Net 4.5.2)。我使用Inno Setup来安装和创建ngen图像。在64位系统和Mi​​crosoft.NET \ Framework \ v4.0.30319 \ ngen.exe上安装时,我应该使用Microsoft.NET \ Framework64 \ v4.0.30319 \ ngen.exe在32位系统上安装时,还是因为程序是x86我应该总是使用Microsoft.NET \框架\ v4.0.30319 \ ngen.exe?

2 个答案:

答案 0 :(得分:2)

通过从命令行运行ngen.exe,可以轻松尝试自己。这种混合无法发挥作用非常清楚,它非常很讨厌它。我将输出编辑为核心消息:

  

1> Ngen无法为图像生成本机代码   C:\ projects2 \ ConsoleApplication491 \ bin \ Debug \ ConsoleApplication491.exe,因为以下错误:   图像文件与您的Ngen版本不兼容   运行。 使用32位Ngen用于32位装配,使用64位Ngen用于   64位程序集。 (来自HRESULT的异常:0x80131F07)

使用针对x86并运行64位版本的ngen.exe的小测试项目生成。

答案 1 :(得分:0)

x86(32位应用程序)可以在32位和64位Windows计算机上运行。

x64只能在64位Windows机器上运行。

因此,如果在Visual Studio中编译时将应用程序作为x86应用程序进行定位,则应在32位和64位Windows计算机上使用32位ngen