1

我们有一个使用 MSVC 2K5、SP1(版本 762 msvcrt80)编译的应用程序

一切都很好,直到有人在同一台机器上安装 .Net3.0SP1,同时安装了 msvcrt80 版本 1433 和自动升级策略。

现在我们到处都是随机崩溃和不满意的客户。

我知道我们可以调整清单文件以强制使用特定版本,但我只发现了复制自动生成的细节并手动修改它的非常丑陋的方式。对于要修复的大量应用程序,这尤其令人不快

我们可以摆脱 winSxS 目录中愚蠢的“升级”策略吗?是否有一个选项/标志只为特定版本编译并且仍然自动生成清单?

4

1 回答 1

1

查找为您的特定 CRT 版本生成的清单。然后在应用程序的主文件中添加一个编译指示:

#pragma comment(linker,"/manifestdependency:\"type='win32' "            \
        "name='" __LIBRARIES_ASSEMBLY_NAME_PREFIX ".CRT' "              \
        "version='" _CRT_ASSEMBLY_VERSION "' "                          \
        "processorArchitecture='x86' "                                  \
        "publicKeyToken='" _VC_ASSEMBLY_PUBLICKEYTOKEN "'\"")
于 2008-12-29T08:01:02.887 回答