并排配置错误(Microsoft.VC80.CRT v8.0.50608.0)

5

我有一个包含以下清单的程序集:

<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>

在我的某台机器上,这个程序集无法运行(程序集加载失败)。在依赖项查看器中打开后,出现以下错误信息:

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).

同样的程序在另一台机器上运行良好,并且使用依赖项检查工具没有出现错误。

据我所知,问题是由于第一台机器缺少某种依赖关系(例如MSVCR可再发行组件)导致的,但是我已经检查过了,Microsoft Visual C++ 2005 Redistributable 在两台机器上都已经安装好了。

我该如何找出缺失的依赖关系是什么?

唯一注意到的事情是工作正常的机器上的 WinSxS 目录有一个额外的条目:

x86_Microsoft.VC80.ATL_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_473666fd

系统事件日志是否提供了更多关于出错原因的详细信息? - Razzupaltuff
4个回答

2

建议不要将“清单文件”包含在程序集中,而不是依赖于并排的方式。

特别是因为您无法确定计算机是否已更新到清单中包含的版本,您可以通过设置项目属性“链接器\清单文件\生成清单”为“No”来禁用它。

希望这能有所帮助。祝好运。


2

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

Visual Studio Updates

例如,上面突出显示的更新解决了这个具体问题。


2

已排序!

有人友善地指出,Dependency Walker 中提到的“SomeAssembly.dll”实际上是与我在 Dependency Walker 中打开的不同的 dll!(哎呀!)

查看此程序集的清单,我发现问题是由于目标为 Microsoft.VC80.CRT v8.0.50727.4053,但该版本未安装在此计算机上(通过安全更新安装)。


你能发一下你下载更新的链接吗? 什么安全更新? - Boris Raznikov
我相信这个更新是KB973923 - 这里有更多的信息http://support.microsoft.com/kb/973923,但你应该通过Windows更新获取它。 - Justin

0

我知道这已经是13年后的事情了!但这个解决方案可能会帮助到某些人。

我在Windows 10机器上安装2007时遇到了'Microsoft.vc80.crt.manifest'错误。之前,2007的setup.exe在许多其他Windows 10机器上都能够正常安装。

我卸载了c++ 2005 redistribution packs(普通版和x86版)。 我还卸载了AVG病毒检查器。

在这些卸载之后,2007的安装过程正常进行,没有出现'Microsoft.vc80.crt.manifest'错误。

无论是2005的卸载还是AVG的卸载,或者两者都是问题的答案。我不需要去处理版本号。

Steve


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接