微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ngen如何工作?

所以,据我所知,它确实需要用MSIL编写的可执行文件和dll文件,并执行JIT作业:将MSIL代码转换为本地机器代码。 对? 所以运行ngen使用以下命令生成我的程序的本地映像:

ngen install myProgram.exe

这需要一段时间,但我发现生成文件是在C:WindowsassemblyNativeImages_v4.0.30319_32myProgramdb1496cf0295bbe6a9242d86c0d8e091myProgram.ni.exe

但是那个可执行文件内容究竟是什么? 我的C#程序的机器代码版本? 它不运行(见下文)。 如果我想向用户提供我的程序的本地版本,如果我在每个*.exe和*.dll运行ngen ,并将生成的图像文件用户,它会正常运行吗? 它仍然需要.NET框架?

但是,生成图像不起作用,并给“这个应用程序无法在您的电脑上运行”错误信息。

Windows窗体中的标准Windows菜单

控制音量混音器

WPF绑定Canvas.Left / Canvas.Top到Point DependencyProperty,使用PointAnimation

获取当前窗口的列表,并将其中的一个重点放在.Net中

为什么在Windows中find打印机状态非常困难?

如何控制.NET服务引用的文件名?

如何查找Windows文件夹中的项目是否真的对用户隐藏?

防止单个可执行文件的多个进程实例

在安装时从app.config设置中设置.NET Windows服务的angular色

Windows窗体inheritance

ngen将JIT代码编译为机器代码是正确的,但仍然需要.net运行时库来运行程序。 如果你的目标是制作一个不需要.net框架的程序,它将无法工作。

把它看作是编写一个动态链接到C ++运行时的本地程序,必须安装c ++运行时才能使程序工作。 .net没有与本机应用程序一样的静态链接,您必须始终安装运行时。

你也不能直接运行ngen构建的图像,当你运行ngen的时候它将它安装到程序集缓存(列出的目录),当你运行你的.net应用程序时,它会找到缓存中的副本并使用预先生成代码,你可以不直接运行。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐