我有一个小型 C# 工具,编译为 Windows 应用程序,其目标是包装其他工具的执行。这个工具会被频繁执行,有时每秒执行 100 次,这是我无法改变的;与框架 2 相同。对于此工具来说,最重要的是短时间热启动。
使用 Visual Studio 2013,我使用强名称 key 对程序集进行了签名。编译“Release”并得到“EXE”文件。接下来我运行 ngen/install app.exe
这就是我从这里和那里的一百万个帖子中所能理解的全部内容。 现在我需要将此 app.exe 移至我的 12 台服务器,我不知道是否应该在每台计算机上安装 ngen,或者还应该将我的 DEV windows/assembly 文件夹结构复制到服务器 windows/assembly (当然我的应用程序部分)仅)。
我在一台服务器上安装了 ngen,但没有看到创建的程序集,因此需要更高级头的帮助。
谢谢 帕维尔。
更新:我再次检查,发现 x64 中的程序集。那么仅运行 ngen 真的就足够了吗?
回顾:我将 exe 复制到服务器并进行了 ngen 安装,检查了程序集是否已创建。我运行机器来启动 500 个 exe 项目 - 它们全部在 1 分 24 秒内完成(来自互斥日志)。我重复测试并得到完全相同的结果: 1.24 接下来我执行 ngen uninstall 并检查程序集是否已删除,确实如此。我进行了同样的测试,结果是 1.26(笑)。考虑到它的稳定性和执行时间对我来说完全令人满意,我想我会放弃它并停止研究使用 GAC/NGEN。但对这种情况和我原来的问题的任何评论都会受到赞赏。
最佳答案
您应该将应用程序运行所需的所有程序集部署到新机器上。如果你愿意的话,你可以 NGEN。像 WiX 这样的安装程序可以为您完成这两件事。请参阅here .
关于c# - 如何使用 GAC 和 NGEN 部署 C# 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24550840/