【问题标题】:Why do I get "An error occurred while validating. HRESULT = '80004005'" when building a setup project?为什么在构建安装项目时出现“验证时出错。HRESULT = '80004005'”?
【发布时间】:2009-06-12 11:43:15
【问题描述】:

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

验证时出错。 HRESULT = '80004005'

【问题讨论】:

    标签: visual-studio setup-project


    【解决方案1】:

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

    【讨论】:

    • 这样可以避免错过最后期限。工作正常。
    【解决方案2】:

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

    常见原因

    我的问题不是依赖错误。然而,这似乎是普遍的原因。因此,基本上,您需要检查您的 MSI 文件并确保所有依赖项仍然有效。如果是依赖问题,关于如何轻松解决此问题的最佳博客回复可能是 An error occurred while validating. HRESULT = '80004005'

    摘自博客

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

    • 如果您的解决方案中有多个项目输出,请确定出现问题的项目。您可以通过从设置项目中一次删除一个项目来做到这一点,直到错误消失。
    • 确定项目后,确定可能导致问题的参考。

      • 检查项目 (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 更改为3.5

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        我今天遇到了这个问题。在我的情况下的解决方案?重新启动 Visual Studio 2008。

        【讨论】:

          【解决方案5】:

          在我的情况下,我的解决方案 (VS2008) 有一个项目也被另一个解决方案 (VS2010) 引用。在 VS2010 解决方案中,我已将项目升级到 .NET 4.0。当我后来意识到该项目也用于另一个解决方案时,我将其降级为 .NET 3.5。由于某种原因,csproj 文件中的所有内容似乎都已正确更改,除了此处提到的一个地方:Error in setup project HRESULT = '80004005'

          我知道这已经在其他地方解决了,但我想从另一个问题的角度阐明这一点。

          【讨论】:

            【解决方案6】:

            虽然简单地删除和重新添加项目依赖项在许多情况下都会起作用,但需要注意的是:

            错误消息“验证时出错。HRESULT=80004005。” 通常在项目被引用到另一个项目时发生 未添加到当前的 [原文如此] 解决方案中。安装工程只支持 同一解决方案中的依赖项目。1

            【讨论】:

            • 链接似乎已损坏。
            【解决方案7】:

            我自己花了很多时间在这个上,尽管上述方法都没有奏效。但是我找到了另一个注册表黑客解决方案,您需要将 (0) 的新 DWORD (EnableOutOfProcBuild) 值添加到 HKCU\SOFTWARE\Microsoft\VisualStudio\14.0_Config\MSBuild\EnableOutOfProcBuild

            注意:这是针对 Visual Studio 2015 的

            【讨论】:

              【解决方案8】:

              在我的例子中,我安装了 Visual Studio 2010 和 Visual Studio 2008。我的安装项目在 Visual Studio 2008 中打开时出现了同样的错误,但在 Visual Studio 2010 中正常。

              如果复制到另一台没有 Visual Studio 2010 但有 Visual Studio 2008 的机器上,则可以编译。

              【讨论】:

                【解决方案9】:

                我安装了 Visual Studio 2010 并将解决方案转换为该版本。由于性能问题,我将解决方案改回 Visual Studio 2008。现在一切都好起来了,但是当我尝试编译安装项目时出现错误。我意识到我的解决方案中有一个 Visual Studio 2010 测试项目,所以我所要做的就是卸载测试项目并再次构建安装项目。

                总结:卸载解决方案中的任何 Visual Studio 2010 项目。

                希望对你有帮助。

                【讨论】:

                  【解决方案10】:

                  我知道这是一个老新闻,但我的特定问题和解决方案没有在这里具体说明(据我所知 - 如果我错过了,我深表歉意)。

                  我有同样的问题。它不会编译我的项目,但没有错误。我只能看到“构建失败”。我打开了“输出”文件(单击菜单上的查看-> 输出),它准确地告诉我是哪个引用(在我的情况下是 .dll)导致了问题。

                  我删除并重新创建了引用,并将引用名称从 Microsoft.Office.Core(这似乎只是一个 32 位版本)更改为“OFFICE”。然后一切都很好。 - 确保记下您在属性窗口中引用的文件的路径......我的新路径完全相同,但引用名称无论如何都改变了......仍然在那个问题上摸不着头脑。 ..

                  所以这个故事的寓意是......当您没有错误并且构建失败时,请检查“输出”选项卡,它可能会有所帮助。

                  【讨论】:

                    【解决方案11】:

                    我从 StackOverflow 上的另一篇文章中阅读了这个答案,它对我有用。

                    Notepad(或任何其他文本编辑器)中打开您的安装项目文件 (.vdproj)。删除 .vdproj 文件开头的这些行:

                    "SccProjectName" = "8:"
                    "SccLocalPath" = "8:"
                    "SccAuxPath" = "8:"
                    "SccProvider" = "8:"
                    

                    再次构建 - 错误消失了。这个错误并没有阻止我部署、构建、调试(或任何)我的项目;它只是惹恼了我。即使我将所有项目设置为在当前配置中构建并且设置项目不设置,它也会出现。

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 2017-10-10
                      • 1970-01-01
                      • 2021-08-10
                      • 2012-01-28
                      • 2019-04-02
                      • 2020-08-27
                      • 1970-01-01
                      相关资源
                      最近更新 更多