2009-09-14 91 views
5

我有一个具有以下明显的嵌入式汇编:并排端配置错误(Microsoft.VC80.CRT v8.0.50608.0)

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
    <dependency> 
    <dependentAssembly> 
     <assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50608.0" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity> 
    </dependentAssembly> 
    </dependency> 
</assembly> 

在我的一台机器该组件不起作用(程序集加载失败)。在Dependency Walker中打开这给了我以下错误信息:

Error: The Side-by-Side configuration information for "SomeAssembly.dll" contains errors. This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem (14001). 

相同的组装工作正常,另一台机器上,而我得到的Dependency Walker没有错误。

据我所能解决的问题是由于第一台机器缺少某种依赖关系(例如MSVCR可再发行组件),但是我已经检查并且Microsoft Visual C++ 2005 Redistributable安装正常两台机器。

我该如何去弄清楚缺失的依赖是什么?

我注意到的唯一的事情是工作机上的WinSxS文件目录中有一个附加的条目:

x86_Microsoft.VC80.ATL_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_473666fd 
+0

系统事件日志是否提供了有关出错的更多细节? – karx11erx 2009-09-14 10:12:49

回答

2

排序!

有人向我指出,在Dependency Walker中提到的''SomeAssembly.dll'实际上是与我在Dependency Walker中打开的DLL不同的DLL! (哎呀!)

看看这个程序集的清单,我可以看到问题是由于Microsoft.VC80.CRT v8.0.50727.4053是针对目标,但没有出现在这台机器上。 (通过安全更新安装)。

+0

您可以发送您下载更新的链接吗? 什么安全更新? – 2010-01-28 08:51:22

+0

我相信更新是KB973923 - 这里有更多的信息http://support.microsoft.com/kb/973923,但你应该通过Windows更新。 – Justin 2010-01-28 10:24:47

2

同样的问题挣扎后,我注意到,应用开发Visual Studio安装的更新可能会解决一些目标机器更新:

Visual Studio Updates

例如,上述地址高亮显示更新这个具体问题。

2

并列中继我会建议你不要在你的程序集中包含“Manifest文件”。 特别是因为您无法确定要安装软件的PC是否更新为清单中包含的版本。

您可以禁用它将项目属性“Linker \ Manifest File \ Generate Manifest”设置为“否”。

我希望这可以帮助。 祝你好运