为什么在构建安装项目时会出现"验证时发生错误.ERESULT ='80004005'"?

Mar*_*lle 23 setup-project visual-studio

为什么在构建安装项目时会出现以下错误?

验证时发生错误.HRESULT ='80004005'

the*_*guy 21

解决方案中的一个项目ToolsVersion="4.0"(在.csproj文件中),将其更改为ToolsVersion="3.5"并设置项目构建正常.


Jus*_*ony 15

我发现的两个原因已经在其他答案中,但它们是单独的答案,并没有完全解释.因此,希望这将结合各种可能性并提供良好的调试方法.:)

常见原因

我的问题不是依赖错误.然而,这似乎是常见的原因.因此,基本上,您需要检查MSI文件并确保所有依赖项仍然有效.如果是依赖性问题,可能是关于如何轻松解决此问题的最佳博客回复是验证时发生错误.HRESULT ='80004005'.

博客摘录:

按照以下步骤进行故障排除.

  • 如果解决方案中有多个项目输出,请确定出现问题的项目.您可以通过从安装项目(S)一次删除一个项目直到错误消失来实现.
  • 确定项目后,确定可能产生问题的参考.

    • 检查项目(A)是否引用了已从解决方案中删除的项目. - 删除此类引用(如果有).
    • 在将项目(A)添加为参考后,检查项目(A)是否引用了移动到不同物理位置的项目. - 删除并添加此类引用.
  • 相应地修复参考后重建安装项目以查看错误是否消失.

另类理由

但是,我的问题与Visual Studio版本控制有关.因此,如果您的依赖项有效且仍然遇到此问题,那么如果VS2010出现问题,您可以解决此问题.

基本上,如果您运行MSBuild并看到此警告:

项目文件包含ToolsVersion ="4.0",此版本的MSBuild不支持.像处理ToolsVersion ="3.5"那样处理项目

然后问题是Visual Studio版本控制.这意味着在Visual Studio 2010中打开或创建了一个项目,然后将其保存或添加到现有的3.5解决方案中.我只是搜索了我项目中的所有文件,ToolsVersion="4.0"找到了有问题的.csproj文件,在文本编辑器中打开它并手动将其更改4.0为a 3.5.


Mar*_*lle 5

此错误与依赖性错误有关.我删除了对主输出项目的所有引用并再次添加它们.它现在编译好了!

  • 你能用图像解释一下,你是怎么解决的? (5认同)