【发布时间】:2013-12-07 07:04:54
【问题描述】:
出于特殊目的,我想使用 ngen 命令行编译 C# 程序。所以我在 VS2010 中创建了一个控制台应用程序并命名为ngentest。在vs2010\projects\ngentest\bin\debug 中创建一个名为ngentest.vshost.exe 的文件。
我在VS2010命令提示符中使用了这个文件作为ngen命令参数,如下:
ngen "c:\documents\vs2010\projects\ngentest\bin\debug\ngentest.vshost.exe"
但是当我这样做时,我无法收到PublicKeyToken,而且我在任何地方都找不到任何程序集!
如果创建了我的程序集,它在哪里?我怎么能找到它?我如何运行它(使用命令,或者...!)以获取我的输出?
否则,当我从 VS 的 Build 菜单中使用 build ngen 构建项目时,会在上述目录中创建一些文件,其中一个是 ngentest.exe。
【问题讨论】:
-
首先,您应该在 ngentest.exe 上执行此操作,而不是在 ngentest.vshost.exe 上。其次,存储在哪里无关紧要,系统会为您找到它。它位于 Windows 目录下的隐藏文件夹中。
-
但据我了解,ngentest.exe 包含 MSIL 代码,但 ngen 需要托管代码来生成二进制代码(特定于机器)。如果我使用命令“ngen ngentest.exe”,我如何运行我的项目?
-
我读过这个页面,但对我没有帮助...
-
该页面的第一段是“本机映像生成器 (Ngen.exe) 是一种提高托管应用程序性能的工具。Ngen.exe 创建本机映像,这些映像是包含已编译处理器的文件- “你不明白哪一部分?
-
阅读“Fusion Engine”,你就会知道 .Net 从哪里加载程序集
标签: c# .net visual-studio-2010 native-code ngen