我有一个混合模式DLL在visual studio2005年。在依赖性,沃克,我DLL是表示一个依赖下列CRT Dll。注意,这是在我的窗7发展机。

c:\windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4927_none_d08a205e442db5b5\MSVCP80.DLL

"\MSVCR80.DLL

"\MSVCM80.DLL

8.0.50727.4927

在我的窗7开发计算机使用Visual Studio2005年这个编译和运行得很好。问题是它不会跑在我的Windows XP试验机的最新CRT安装。

当我拖DLL入depenency沃克XP机似乎是在寻找Dll\System32...(我去表演完整的路径,也没有途径,只有一个黄色的惊叹号)

问题是,这个版本(建立4927)crt在;没有安装在XP试验机。它有Visual Studio2005年的最新CRT安装(sp1?).

8.0.50727.4053 是的最新版本我可以找到MSDN。

我知道这不是最令人兴奋的问题上张贴,但任何人都不会知道什么是这4927运行时?

* 编辑 *

清单所产生的MT.exe:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.4053" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.762" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
</assembly>

因此,有3个不同的版本,它的目标是...

有帮助吗?

解决方案

修订4927是Windows7个具体版本,可能使用微软的二进制文件。你的建立不应该造成一种依赖于它,4053是最后一个为VS2005.不解决这与depends.exe 顺便说一句,这是不擅长跟踪;无法依赖关系。

开始排除这双-检查什么的依赖你的建造产生。第一次看在vc\包括\crtassem.h,_CRT_ASSEMBLY_VERSION宏产生的清单的条目。下一步是检查清单,这是嵌入可执行的。项目的释放目录中包含的.嵌入。清单文件,该文件被嵌入。和文件+开+文件在您的可执行可以让你看看实际的嵌入式RT_MANIFEST资源。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top