Visual c++ 为VS2008编译的二进制文件需要调试CRT并行程序集,不需要';我不在VS2010工作

Visual c++ 为VS2008编译的二进制文件需要调试CRT并行程序集,不需要';我不在VS2010工作,visual-c++,manifest,side-by-side,Visual C++,Manifest,Side By Side,我正在与VS2010合作一个使用Havok的项目,最新版本只有VS2008和更早版本的二进制文件。VS生成的嵌入式清单包含以下内容 <assemblyIdentity type="win32" name="Microsoft.VC90.DebugCRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity> 这些应用程

我正在与VS2010合作一个使用Havok的项目,最新版本只有VS2008和更早版本的二进制文件。VS生成的嵌入式清单包含以下内容

<assemblyIdentity type="win32" name="Microsoft.VC90.DebugCRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
这些应用程序在我同事的一台机器上工作,因为(大概)他已经在上面安装了VS2008,但在另一位同事或我的机器上没有,因为我们只安装了VS2010。工作机器在winsxs目录中的唯一调试CRT文件是

x86_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.30729.1_none_bb1f6aa1308c35eb
作为包含DLL、.manifest文件和.cat文件的文件夹(相同的publicKeyToken,但版本不同)

我尝试将文件复制到我的winsxs目录,但没有解决问题。将DLL与二进制文件一起直接放入目录也没有任何作用。将文件放入
bin\Microsoft.VC90.DebugCRT.DLL
(因为这是根据sxstrace搜索的目录之一)也没有帮助,但sxstrace的输出更改为

INFO: Begin assembly probing.
INFO: Did not find the assembly in WinSxS.
INFO: Attempt to probe manifest at G:\Windows\assembly\GAC_32\Microsoft.VC90.DebugCRT\9.0.21022.8__1fc8b3b9a1e18e3b\Microsoft.VC90.DebugCRT.DLL.
INFO: Attempt to probe manifest at D:\Projects\GTS new\bld\Debug\Microsoft.VC90.DebugCRT.DLL.
INFO: End assembly probing.
ERROR: Activation Context generation failed.
(它停止搜索,并且能够解析引用,但上下文生成仍然失败)


唯一有效的方法是禁用嵌入式清单生成。是否有其他方法解决此问题?

在工作计算机上,查看文件夹:

C:\ProgramFiles(x86)\Microsoft Visual Studio 9.0\VC\redist\Debug\u NonRest\x86\Microsoft.VC90.DebugCRT


这是需要运行的版本的运行时DLL所在的位置。那里还有一个清单文件。您可以在事件查看器(eventvwr.exe)中查看exe要查找的DLL版本,然后可以修改清单文件(而是修改放置在可执行目录中的DLL副本)因此,它会将包含的文件标识为该版本。

VS是否在调试模式下针对DebugCRT生成清单,而不在发行版中?也请检查。
INFO: Begin assembly probing.
INFO: Did not find the assembly in WinSxS.
INFO: Attempt to probe manifest at G:\Windows\assembly\GAC_32\Microsoft.VC90.DebugCRT\9.0.21022.8__1fc8b3b9a1e18e3b\Microsoft.VC90.DebugCRT.DLL.
INFO: Attempt to probe manifest at D:\Projects\GTS new\bld\Debug\Microsoft.VC90.DebugCRT.DLL.
INFO: End assembly probing.
ERROR: Activation Context generation failed.