【问题标题】:How to find reason of failed Build without any error or warning如何在没有任何错误或警告的情况下找到构建失败的原因
【发布时间】:2012-10-25 17:09:25
【问题描述】:

我有一个包含对 WCF 服务的引用的 WebApplication。

使用 Visual Studio 2010 构建时,构建失败,没有任何错误或警告。但是使用MsBuild 构建.csproj 是成功的。

不知道我应该在 Visual Studio 中尝试什么来解决/诊断问题。你能帮忙吗?

编辑:

我发现构建失败了,

  1. 来自状态栏中显示的文本。

  2. 从输出窗口:

    ========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========
    

【问题讨论】:

  • 你怎么知道你的构建失败了?
  • 输出选项卡中有什么吗?
  • 尝试增加 Visual Studio 中输出窗口的详细程度。它可以帮助确定问题。如何提高详细程度:blogs.msdn.com/b/saraford/archive/2008/10/07/…
  • 你试过重启VS2010甚至重启你的电脑吗?
  • @NahuelI。我在另一个项目中再次遇到了类似的问题,当我搜索 stackoverflow 时,我得到了自己的问题:-)

标签: c# asp.net .net visual-studio-2010


【解决方案1】:

Build + Intellisense 吞下了错误消息。 选择 Build Only 会显示它们。

【讨论】:

  • 刚刚遇到这些都没有显示错误的情况:(
  • 哇,这对我有用,这在 VS 2019 的新版本中到底是怎么回事。谢谢大佬!
  • 哇,这太奇怪了!这是 VS 中的错误吗?
  • VS 2022 中仍在发生这种情况......
【解决方案2】:

我刚刚遇到了类似的情况。在我的例子中,出现在 csproj 文件的 BeforeBuild 目标中的自定义操作(来自 Nuget.org 上的 MSBuildVersioning 包 - http://www.nuget.org/packages/MSBuildVersioning/)失败了,但没有在正常位置触发任何错误消息。

我能够通过设置 “MSBuild 项目构建输出详细程度”(在最新的 Visual Studio 的工具选项卡 [路径:工具 > 选项 > 构建和运行]) 到“诊断”,如下所示。这表明自定义操作(在我的例子中是 HgVersionFile)是失败的。

【讨论】:

  • 对于像我这样一无所知的人:要使用此方法,您可能必须搜索输出窗口的内容。我的构建错误被#pragma warning disable 语句隐藏,并且仅在我在输出窗口中搜索“错误”时可见。
  • 在将详细程度设置为诊断后,我发现我收到了 System.OutOfMemoryException。我正在使用计算机 98% 的可用内存。这是一个很好的答案!
  • 在我的例子中,它是一个带有 .Net 4.5 的项目,它引用了带有 4.5.2 的项目。详细的诊断助手找出它
  • 对我来说,我使用 Queue New Build 在 TFS 上构建,而 Queue Build 对话框在第二个选项卡上有一个详细信息,我可以打开然后在构建日志中查看问题。
  • 在解决方案中添加了对另一个项目的引用。不知何故出了点问题。解决方案资源管理器中的引用列表表明它在那里。只有在切换到诊断模式后,输出窗口才告诉我该引用有问题。删除它并重新添加它,问题解决了。
【解决方案3】:
  • 如果解决方案包含多个项目,请尝试一次构建一个。
  • 尝试重新启动 Visual Studio。
  • 尝试重新启动计算机。
  • 尝试“全部重建
  • 尝试“Clean Solution”,然后删除“vspscc”文件和“vssscc”文件,然后重新启动 Visual Studio,然后“全部重建”。

【讨论】:

  • 如果没有帮助,我应该找一份新工作吗?
  • 刚刚重启VS2013对我有帮助。我在一个资源有限的虚拟机上工作,但我不确定这是否与它有关。
  • 如果您遇到此问题,您将无法清理解决方案。
  • 帮助我关闭所有VS实例(不足以关闭故障实例),然后删除.vs文件夹并重新启动VS。
  • 我的解决方案是从磁盘上擦除 VS 并使用记事本
【解决方案4】:

VS(2013 Pro,Win 8.1)重启为我做了。

【讨论】:

  • VS 2015 Community Win 7 与单个 MVC 项目。相同的分辨率。
  • VS 2017 Community Win 10。我想我应该在寻找解决方案之前尝试将其关闭再打开!
  • VS 2019 Pro Win 7。传统仍在继续。 =(
  • VS 2019 Community 16.7.5,Windows 10。有些东西永远不会改变。
【解决方案5】:

删除 .vs 文件夹并重新启动 VS,为我工作

【讨论】:

【解决方案6】:

我想扩展Sasse's answer

要解决 Visual Studio 2015 Update 2 的问题,我必须一次构建每个项目,并在每次构建后查看输出窗口。

一个项目给了我

“名称空间“BeforeSomeNamespace”中不存在类型或名称空间名称“SomeNamespace”(您是否缺少程序集引用?)”。

错误列表窗口中没有错误,但程序集在“参考”下有一个黄色警告标志。

然后我看到引用项目的目标是 4.5.1,而被引用的项目是 4.6.1。将 4.6.1 更改为 4.5.1 使整个构建成功。

【讨论】:

  • 好吧,一次构建一个项目可能没有必要,但有一件事是肯定的:仔细查看输出窗口(最好将其复制/粘贴到记事本并使用 Ctrl + F 查找) 表示“缺失”一词。它没有出现在错误列表中,但它肯定会破坏您的解决方案。 -.-
【解决方案7】:

似乎这个问题有多个答案,所以我会根据个人经验添加我的答案,希望它可以节省时间/压力。

确保您的解决方案中的所有项目都针对相同的 .NET 版本。

与 OP 类似,有 0 个错误,但构建一直失败。但是,有一个警告条目(隐藏在数百个无用的 XML 警告之间......)说,一个项目的目标是不同的 .NET 版本,而不是引用它的项目。整个问题是我的解决方案中的一个项目针对 .NET 4.5.2,而其他项目针对的是 4.5.1。它应该即使存在这种差异也可以工作(因此它只是一个警告),但不幸的是,它破坏了构建。

奇怪的是,它在一段时间内构建/运行良好,但突然构建开始失败一次,导致此问题。不知道我做了什么让它开始抱怨不同的 .NET 目标版本,但我觉得 Visual Studio 中有一些永远无法解决的谜团。

【讨论】:

  • 原来我添加了一个新项目,它有一个不同的 .Net 目标框架版本 - 我修复了这个问题,虽然构建仍然失败,但我能够看到正在破坏的错误构建。谢谢。
【解决方案8】:

没有什么对我有用,所以我删除了 .suo 文件,重新启动 VS,清理了投影,然后构建就可以工作了。

【讨论】:

    【解决方案9】:

    我最近遇到了同样的问题,我也尝试了很多方法,例如, 重新启动 Visual Studio、清理和重建解决方案、重新启动 PC 等。 (首先确保您的解决方案中的所有项目都针对相同的 .NET 版本。)

    但显然没有什么对我有用,所以我按照以下步骤操作;

    1. 保存项目中的待定更改并关闭 Visual Studio
    2. 从文件资源管理器中找到确切位置并找到“obj”文件并打开它,

    1. 然后,删除所有包含的文件(有些文件不会删除,没关系,跳过它们)

    2. 使用运行命令(按 Windows 键 + R)并输入“%temp%”,然后按回车键查找临时文件。

    3. 最后,全部删除。

    这对我有用,希望它适用于你的情况。

    【讨论】:

    • “首先确保解决方案中的所有项目都针对相同的 .NET 版本”。包括测试项目。
    【解决方案10】:

    首先“清理解决方案”,然后重建解决方案。

    如果不起作用,请关闭解决方案并重新启动解决方案。

    试试这些东西,希望绝对有效。

    【讨论】:

      【解决方案11】:

      另一种可能是 Visual Studio 需要以管理员身份运行,这可能与部署到本地 IIS 服务器或其他部署需要有关。

      【讨论】:

        【解决方案12】:

        当引用的项目之一是比您当前项目更高版本的 .NET 框架时,可能会发生这种情况。

        【讨论】:

          【解决方案13】:

          只是为了完成并可能帮助将来再次遇到相同错误的人,我正在使用 Mahapps Metro 接口并更改了一个窗口的 XAML,但忘记更改代码隐藏中的部分类。在这种情况下,构建失败而没有错误或警告,我可以通过增加设置输出的详细程度来找到它:

          【讨论】:

          • 还在错误过滤器中选择“仅构建”而不是“构建 + 智能感知”。
          【解决方案14】:

          我遇到了同样的问题,我将此问题追溯到错误列表选项“Build + Intellisense”。

          如果选择此选项,则列表中不会显示任何错误。切换到“Build Only”,错误按预期出现。

          它看起来像 Visual Studio 中的一个错误。 重新启动 Visual Studio 解决了这个问题

          【讨论】:

            【解决方案15】:

            转到输出窗口,在输出窗口中搜索“错误”,TADA

            【讨论】:

              【解决方案16】:

              尝试从 Powershell 命令行构建您的项目:

              dotnet build
              

              然后您可以在命令行输出中看到任何错误,即使 Visual Studio 正在玩捉迷藏并带有构建错误消息。

              【讨论】:

              • 哇,这个命令显示了在 VS 内部构建的错误,所以我已经能够解决该错误。现在的问题是为什么 VS 没有报错,而这个命令却报错
              【解决方案17】:

              对我来说,Target Framework 是问题所在。

              我的项目的Target Framework4.5.2,而引用项目的Target Framework4.6.1

              一旦我将项目的 Target Framework 更新为 4.6.1,问题就得到了解决。

              【讨论】:

              • 谢谢!如果您没有找到具体错误但怀疑这是问题所在,您可以尝试将项目的 TF 更改为更高的 TF。我的情况就是这样。
              【解决方案18】:

              在我的解决方案中添加一个新项目(称为“TestCleaner”)后,我遇到了类似的问题:构建失败,没有错误。

              我增加了输出的详细程度(请参阅 Richard J Foster 的说明)并在输出中搜索“失败”。我很快发现了哪个项目失败了,以及为什么:项目“TestRunner”失败,出现“error CS0246: The type or namespace name 'TestCleaner' could not be found”(尽管在代码)。

              检查 TestRunner 的引用,果然对 TestCleaner 的引用被标记为未解析,并且引用属性中缺少路径。删除和重新添加并没有解决它。同样,没有解释为什么。

              unresolved reference

              我终于找到了原因:“TestCleaner”使用了与其他项目不同的目标框架。它是.Net 4.5.2;其他都是 4.5。

              【讨论】:

                【解决方案19】:

                我遇到了同样的问题。错误列表窗口有 2 个下拉菜单“显示包含的项目”和“显示生成的问题”。这些名称在将鼠标悬停在下拉菜单上后可见。 “显示生成的问题”下拉菜单设置为“构建 + IntelliSense”,更改为“仅构建”后,错误出现在列表中。

                【讨论】:

                  【解决方案20】:

                  在我的例子中,我将Diagnostic 设置为 MSBuild 详细程度,如 here 所示。

                  猜猜看...在 Visual Studio 中 Output 窗口的最后一行显示:

                  2>"C:\Company\Project\project.sharded\Project\Project.csproj" (Rebuild;BuiltProjectOutputGroup;BuiltProjectOutputGroupDependencies;DebugSymbolsProjectOutputGroup;DebugSymbolsProjectOutputGroupDependencies;DocumentationProjectOutputGroup;DocumentationProjectOutputGroupDependencies;SatelliteDllsProjectOutputGroup;SatelliteDllsProjectOutputGroupDependencies;SGenFilesOutputGroup;SGenFilesOutputGroupDependencies target) (1) ->
                  2>(CoreCompile target) -> 
                  2>  C:\Company\Project\project.sharded\Project\Services\UserService.cs(387,59,387,62): error CS0136: A local or parameter named 'sut' cannot be declared in this scope because that name is used in an enclosing local scope to define a local or parameter
                  2>
                  2>    2147 Warning(s)
                  2>    1 Error(s)
                  

                  这看起来像是 Visual Studio 2019 (16.3.5) 中的一个错误。

                  Visual Studio 的 Error List 窗口中未显示任何错误。

                  这是Error List窗口中通常出现的错误类型。

                  这是违规行:

                  var sut = _sdb.SysUsableThreads.SingleOrDefault(sut => sut.uid == thread.uid && sut.thread_core == thread.core);
                  

                  好的。不能使用sut,因为变量名为sut,而我将lambda 命名为sut。同样,这是应该在Error List 中显示的内容。这肯定是 Visual Studio 2019 中的一个错误。我在 Visual Studio 中报告了它。

                  【讨论】:

                  • 我在 Visual Studio 2019 中遇到了同样的问题,在构建诊断中显示错误数量,但在错误列表中没有。通过使用 Visual Studio 2017 打开项目,我能够在错误列表中看到错误
                  【解决方案21】:

                  在 Visual Studio 2019 中,我必须“以管理员身份运行”,它最终构建成功。 所以以管理员身份打开应用程序(鼠标右键-以管理员身份运行)。

                  【讨论】:

                    【解决方案22】:

                    我遇到了同样的问题!只需删除 bin 文件夹并重新启动您的VS。 就这样。 在VS 2013 中测试。

                    【讨论】:

                    • 当我试图通过删除 bin 和 obj 文件夹来解决这个问题时,它修复了它。我还需要管理员权限才能删除 obj 文件夹,所以发生了一些非常奇怪的事情。
                    【解决方案23】:

                    为我解决的问题是从解决方案的根目录中删除 .vs 文件夹并重新启动 Visual Studio。

                    同样重要的是,即使错误没有显示在错误列表窗格中,它们仍然存在于构建的输出中。

                    【讨论】:

                      【解决方案24】:

                      在我这边,当我添加一个新项目(库)时遇到了这个问题

                      我是怎么解决的

                      右键单击新添加的库,转到属性然后应用程序,在应用程序下将目标框架更改为所有项目的框架。

                      问题是您的项目使用不同的目标框架。

                      【讨论】:

                        【解决方案25】:

                        这发生在我向 asp.net 项目添加新页面后。

                        我所做的是排除页面,让它再次成功构建。

                        然后我添加回页面,所有代码都被注释掉了。成功。

                        然后我一点一点地取消注释代码,然后一切正常。

                        【讨论】:

                          【解决方案26】:

                          删除几个表格后我遇到了同样的问题。一旦我进入代码并为我删除的控件之一执行“显示定义”,错误就会弹出。

                          我的一个项目也针对更高的框架,所以这也可能是问题所在。

                          【讨论】:

                            【解决方案27】:

                            我已经尝试了所有方法,但在我的情况下没有任何效果,然后我更改了这些提到的设置,这对我来说很好地解决了这个问题。 试试如果它可以帮助后来的观众。 这些设置在您的情况下可能会有所不同,但请确保使用您最初保留的相同配置设置构建所有包括 DLL(在图像中提到。)。

                            干杯!

                            【讨论】:

                              【解决方案28】:

                              如果安装了 nuget 包“Microsoft.Net.Compilers”,请确保它适合您的 Visual Studio 版本(构建工具版本)。

                              版本 1.x 表示 C# 6.0(Visual Studio 2015 和更新)。比如1.3.2

                              所以如果你使用VS2015就不要升级到1.x以上的版本

                              https://stackoverflow.com/a/44397905/3862615

                              【讨论】:

                                【解决方案29】:

                                我在旧机器上确实有旧项目。当我关闭机器时,项目正在正确构建。今天,我收到构建错误,但没有错误消息。在尝试了上面的一些建议之后,没有运气。

                                在 Visual Studio 2015 中,我在 TOOLS > Options > Projects and Solutions > Build and Run 下打开了详细 MSBuild

                                它给了我一些关于构建的细节,但没有错误。之后,我尝试检查扩展和更新(工具 > 扩展和更新),发现其中很少有需要更新。

                                Nuget 包 是罪魁祸首,更新 Nuget 后 - 构建成功。

                                【讨论】:

                                  【解决方案30】:

                                  这可能是由于您的项目和 VS 中的 reportviewer 版本不同

                                  【讨论】:

                                  • 这是一条评论
                                  猜你喜欢
                                  • 1970-01-01
                                  • 1970-01-01
                                  • 2019-05-14
                                  • 1970-01-01
                                  • 2020-09-16
                                  • 1970-01-01
                                  • 2011-05-23
                                  • 2021-06-14
                                  相关资源
                                  最近更新 更多