我正在尝试使用 NGen 来查看我的应用程序的 native 镜像是否比 .NET 镜像运行得更好。但是,我在弄清楚该怎么做时遇到了一些麻烦。
我的应用程序名为 MyApp.exe,它有几个依赖项 DLL。
我打开了 VS 2010 命令提示符并运行:
ngen install MyApp.exe /Profile
命令输出未表明遇到任何问题。
然后我去 C:\Windows\assembly 尝试运行 EXE,但我在那里找不到它(我在 Windows 7 上)。一点点挖掘告诉我使用命令提示符浏览到 C:\Windows\assembly\NativeImages_v4.0.30319_32。我最终能够在那里找到我的 MyApp.ni.exe,但当然无法在资源管理器中打开包含文件夹。
我试图运行该程序,它告诉我:
“C:\Windows\assembly\NativeImages_v4.0.30319_32...\MyApp.ni.exe 不是有效的 Win32 应用程序。”
命令输出表示拒绝访问。
我有两个问题:
谢谢。
最佳答案
看来我应该多读一点。似乎我可以只执行传递给 NGEN 的 EXE,它应该会自动从缓存中加载 native 内容。
另一个问题是我必须同时使用/profile 和/debug 标志运行 ngen 以确保我可以同时执行这两项操作。
这是关于这个问题的一个很好的教程:
http://blogs.msdn.com/b/clrcodegeneration/archive/2010/04/27/ngen-getting-started-with-ngen-in-visual-studio.aspx
关于.net - ngen 和分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6472083/