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