|
1
2
包含在二进制文件中的清单是由VS构建系统自动生成的。确定发送到清单中的版本依赖关系的重要头文件是vc\include\crtassem.h和crtdefs.h。前者声明CRT版本。请注意,它已经支持RTM版本与“最新”版本,并使用了“绑定到当前”宏的“最新”版本。后者包含#pragma comment指令,用于将/manifestdependency链接器选项嵌入到.obj文件中,从而使链接器自动生成清单。 您不必这样做,您可以简单地关闭生成清单的链接器选项并编写自己的选项。这样你就可以完全控制应用程序绑定到的CRT版本。你是否在这方面有点值得怀疑。你可能仍然在运送去年7月更新的旧版本的CRT,它包含了一个严重的安全漏洞。客户往往对在他们的机器上安装有良好文档记录并解决了安全漏洞的软件感到有点不高兴。 接下来你要做的就是控制DLL的部署。您必须自己将dll部署到WinSxS并行缓存中。
|
|
|
2
1
这只是一个问题,您的配置设置在哪个目录下构建。只要你的机器上有头的所有版本和它们链接到的库,我不明白为什么这不能成为每个版本的新配置。 |
|
|
3
1
正常情况下,这应该不会有问题-补丁毕竟是错误修复和安全更新。原则上,每一次改变都会让你的应用程序更加稳定。不一定都是真的,但无论如何你也无能为力。 有一些选项可以更改运行时,但它们与线程安全和类似问题有关。在项目财产中有一些相关的地方。特别是,在C/C++ +代码生成选项卡中,您可以选择要使用的运行库。 如果你真的很担心 可以 选择静态链接的非DLL运行时。用户仍然可以更新他们的运行时动态链接库,但这不会提高应用程序的稳定性。 |
|
|
4
0
您可以使用清单资源文件来实现这一点,这些文件是用XML编写的。 我们不得不在以前的工作地点做这件事,不幸的是(或者,更幸运的是),我没有接触到详细的细节。 This article 更新0以下是关于 manifest file generation ,以及它们在 isolating applications and building side by side assemblies |
|
Willy · LINQ:将分组列表转换为新列表 8 年前 |
|
|
Kapil · 如何使用参数设置脚本任务SSI的路径 9 年前 |
|
|
c00000fd · 跨命名空间和不同的.H文件的友元类 9 年前 |
|
|
tangoal · 调用模板类成员时非法使用此类型作为表达式 9 年前 |