【问题标题】:Visual Studio 2015 project builds failed but no errorsVisual Studio 2015 项目构建失败但没有错误
【发布时间】:2015-11-01 21:18:36
【问题描述】:

我的项目构建全部失败,但没有显示任何错误。我尝试清洁和重建,但没有奏效。

我将 MSBuild 输出详细程度更改为“诊断”,希望它能帮助我识别问题,但现在我被卡住了。输出如下所示:

1>Project 'ProjectMM.Data.Models' is not up to date. Input file 'C:\Projects\ProjectMM\ProjectMM.Data.Models\ProjectMM.Data.Models.csproj' is modified after output file 'C:\Projects\ProjectMM\ProjectMM.Data.Models\bin\Debug\ProjectMM.Data.Models.pdb'.
All packages are already installed and there is nothing to restore.
1>------ Build started: Project: ProjectMM.Data.Models, Configuration: Debug Any CPU ------
2>Project 'ProjectMM.Data' is not up to date. Input file 'C:\Projects\ProjectMM\ProjectMM.Data\ProjectMM.Data.csproj' is modified after output file 'C:\Projects\ProjectMM\ProjectMM.Data\bin\Debug\ProjectMM.Data.pdb'.
2>------ Build started: Project: ProjectMM.Data, Configuration: Debug Any CPU ------
3>Project 'ProjectMM' is not up to date. Input file 'c:\projects\projectmm\projectmm\app_start\bundleconfig.cs' is modified after output file 'C:\Projects\ProjectMM\ProjectMM\bin\ProjectMM.pdb'.
3>------ Build started: Project: ProjectMM, Configuration: Debug Any CPU ------
========== Build: 0 succeeded, 3 failed, 0 up-to-date, 0 skipped ==========

【问题讨论】:

  • 您的错误列表窗口是否显示?
  • 转到查看菜单 -> 选择错误列表并检查是否有任何错误。理想情况下,您应该在错误列表中获得它。保持您的错误列表窗口打开并尝试构建项目,看看会发生什么..
  • 所以,这就是刚刚发生的事情:我发布了这个问题并假设我不会立即得到回复,我关闭了项目。您提示我将其打开备份,打开错误列表并重建。完美运行,没有错误,全部成功!
  • @RobGreenlee:看我的回答,我敢打赌,当您重新打开解决方案时,“错误选项卡”处于活动状态!

标签: visual-studio visual-studio-2015 build msbuild


【解决方案1】:

您可能没有看到所有构建错误。

通过将“消息”图标后面的下拉列表从“Build + Intellisense”更改为“Build Only”,您将能够看到在构建期间引发的 Intellisense 未检测到的错误。请看下面的截图:

【讨论】:

  • 哥们,你是我的救命恩人!
  • 为什么“Build + Intellisense”中不会出现“Build Only”错误?
  • 这有助于在错误列表中显示错误,但有错误的代码行没有红色下划线。我猜这一定是一个智能感知问题。
  • 为我工作。我的已经切换到 Build 和 Intellisense,它隐藏了构建错误。 Build Only 工作并显示构建错误。
  • 你先生为我节省了一天。干得好。非常感谢
【解决方案2】:

我遇到了同样的问题,关闭并重新打开 Visual Studio 即可解决问题。

我也尝试过清理解决方案,但清理也失败了。

可能在其他情况下这不起作用,但在我的情况下,重新启动已经为我解决了这个问题。

【讨论】:

  • 如果重启没有帮助。当我将一个项目添加到我的解决方案中时,我经常遇到这个问题,而另一个 Target 框架引用了不同的框架项目。
  • 在我的情况下,重新启动 VS 或清理解决方案没有帮助。但是,删除 .vs 文件夹下的 .suo 解决了问题
  • @cellik :在我的情况下它不起作用。有什么价值……我用的是企业版。
  • 将电脑时间从 CEST 时区 (GMT+1) 更改为美国时区 (GMT-7) 后,我遇到了同样的问题,似乎无法处理最后一次构建是在未来。重启VS后一切正常。
  • 删除 .suo 文件对我也有用,但重新启动和清理没有。
【解决方案3】:

我经常看到 VS2015 报告“构建失败”但在错误窗口中没有显示任何错误。来自一个古老的命令行背景,我终于去看了输出窗口。输出窗口显示编译器报告错误,但这些错误没有被捕获到错误窗口。 VS2013下没见过这个问题。

通常关闭VS并重新打开它并没有清除这种情况。 (在 VS2013 中,这是一种常见的方式来在后面踢 XAML 智能感知并使其停止关注已修复的“错误”。)

到目前为止,这一直与 XAML 页面 CS 文件中的编译错误有关。我不记得在非页面 CS 文件中看到过它。

直到有人想去检查输出窗口,诸如智能感知在错误窗口中报告对 XAML 中对象的无效引用,但错误窗口中没有显示编译器错误会引起非常混乱,因为它“出现”像这些错误是智能感知报告 XAML 错误。但实际上并非如此。 XAML 错误只是 CS 文件无法编译但没有在错误窗口中报告错误的症状。

【讨论】:

  • 对于那些仍在为不可见的错误窗口而苦苦挣扎的人,您可以通过在 中选择 Build Only 来让编译器错误显示在窗口中将错误列表过滤到错误列表窗口中的下拉列表(下拉列表没有标记...您可以通过将鼠标悬停在它上面并观察工具提示来确定它是哪一个)。
  • @RobertHarvey ...这是关键...但是为什么 Intellisense 会覆盖构建?
  • @RobertHarvey 就是这样。事实证明,正如这里有人建议的那样,我引用了一个不兼容的 .net 项目,但直到我在“错误”窗格中将输出切换为“仅构建”时,我才知道问题出在哪里。一旦我这样做,它就指出了我正确的问题。谢谢你的提示。
  • 这个答案是我的线索。搜索“错误 CS”(不带引号)以查找可能的阻塞构建异常。
  • 附言。我的错误是我在我的方法中使用了相同的变量名。 “字符串 x = 字符串。空;”例如。我有一个异常处理程序,其中也有一个“字符串 x”声明。
【解决方案4】:

删除隐藏的 .vs 文件夹为我为 VS2015 工作。

(请注意,这是 SUO 文件现在所在的位置)

【讨论】:

  • 这个解决方案对我有用(MS VS 2017)。在所有其他解决方案之后。
【解决方案5】:

当您引用不同的 .net 框架版本项目(在我的例子中是 v4.5.2 与 v4.5)时,可能会发生这种情况。更正此问题将解决您的问题。

【讨论】:

  • 这正是我的问题。在 v4.5.2 的解决方案中添加了一个新项目,我从另一个 v4.5 项目中引用了它。将新项目切换到 v4.5 并且运行良好。
【解决方案6】:

检查您的所有项目框架版本,并确保它们都相同,或者至少当项目 B 的 .NET Framework 版本更高时,项目 A 不引用项目 B。

【讨论】:

    【解决方案7】:

    我发生的事情是,将计算机上的时区更改为 +5:30,然后将其更改回 -5:00,这让 VS 感到困惑。当我重新启动 VS 时,它又可以正常工作了。

    【讨论】:

    • 没有线索。我确实使用版本控制,所以它可能与时代混淆???
    【解决方案8】:

    我不知道是不是只有我一个人面临这个问题。

    在我打开 Visual Studio 时,时区为 GMT+1:00,构建成功。然后我将时区更改为 GMT+5:30,然后在不重新启动 Visual Studio 的情况下尝试运行应用程序,但构建失败,没有任何错误或警告。

    我将时区改回 GMT+1:00,构建成功,没有任何错误。

    【讨论】:

    • 非常感谢 - 这让我整个下午都疯了 :-)
    【解决方案9】:

    我在使用 VS2015 Update 3 RC 和 Xamarin(.Forms 共享项目)时遇到了这个问题。
    编译器不会停止,错误只显示在输出窗口中。
    这仅适用于 Xamarin 项目(VB.NET 项目都按预期工作)...
    为了尝试找出问题的原因,我在 VS 中更改了构建输出:
    - 菜单“工具 - 选项”
    - 从左侧面板:“项目和解决方案:构建和运行”:
    - 将“MSBuild 输出详细程度”从“最小”更改为“诊断”

    执行此操作后,编译器已停止并显示错误..
    之后,我将选项从“诊断”设置回“最小”(就像以前一样)并且......它也适用于“最小”(可以肯定的是,我也重新启动了VS)......

    所以.. 似乎(至少在我的情况下)仅更改(触摸)设置(MSBuild 输出详细程度“)已经解决了问题,这是 VS 和/或 Xamarin 中的错误集成软件...

    【讨论】:

    • 为什么这个答案没有得到更高的评价?它为您提供了调试问题的完美解决方案
    • 在下面查看我的答案。我还认为您的解决方案是正确的,但我意识到即使使用“诊断”输出级别,我的“错误选项卡”也会保持空白。与其他人一样,您很可能保持“错误选项卡”处于活动状态,这就是它开始正常工作的原因......
    【解决方案10】:

    我所做的(毕竟以上,它仍然没有工作)是通过所有的 bin 文件夹并将它们全部清除(即引用的项目)。

    这对我有用,希望对你也有用。

    【讨论】:

      【解决方案11】:

      我遇到了这个问题,结果我有一个 using 指向一个空的命名空间。删除 using 子句解决了问题

      【讨论】:

        【解决方案12】:

        检查警告..

        我有一个目标为 .Net Framework 4.5 的新类库,而引用项目是 4.0,这导致了引用问题。

        使用目标 .Net Framework 4.0 修改类库后,它可以正常工作。

        【讨论】:

          【解决方案13】:

          上面的答案对我没有任何帮助。经过多次实验,我终于发现问题出在其中一个项目中引用了Microsoft.Net.Compilers v2.10.0。 VS 2015 使用不支持该版本的 Microsoft.Net.Compilers 的 MSBuild v14。

          【讨论】:

            【解决方案14】:

            对我来说,这个问题与自定义 CodeAnalysis 规则集设置“IncludeAll”有关。

            编译器似乎观察到了这个设置:

              <IncludeAll Action="Error" />
            

            但 IntelliSense 对规则 ID 采取了默认操作,即“警告”。这可以解释@RobertHarvey 看到的行为,您通过 Build Only 过滤输出并显示为 ERROR,但如果您通过 Intellisene Only 过滤,它显示为 WARNING。默认的 Build + Intellisense 过滤输出似乎是不确定的!

            我的解决办法是明确指出我想成为警告的规则作为警告。

              <Rules AnalyzerId="Microsoft.CodeAnalysis.CSharp" RuleNamespace="Microsoft.CodeAnalysis.CSharp">
                <Rule Id="CS0618" Action="Warning" />
              </Rules>
            

            这可能是 Intellisense 不遵守 IncludeAll 选项的问题。见https://github.com/dotnet/roslyn/issues/7400

            【讨论】:

              【解决方案15】:

              将项目迁移到具有较旧框架的 Visual Studio 2015 时也会发生这种情况。检查错误列表中的警告。您可能会看到项目当前是 .NET 2.0 版,需要 .NET 3.5 或更高版本。如果您发现类似的警告,请转到项目的属性并定位所需的 .NET Framework。

              【讨论】:

                【解决方案16】:

                请检查警告。有时构建也会因为某种警告而失败。

                【讨论】:

                  【解决方案17】:

                  当打开一个解决方案,生成它时,我可以看到“输出选项卡”中报告了一些构建错误或警告,而“错误选项卡”没有报告任何问题。

                  您可以看到“错误选项卡”配置正常(选择了“仅构建”和“整个解决方案”)。

                  请注意,经过深入调查,我发现只有在您开始构建时“错误选项卡”尚未显示时才会出现这种情况!

                  如果您在构建之前激活了“错误选项卡”(或者如果它是您启动 Visual 时的当前选项卡),那么新发现的错误/警告将正确显示:

                  就好像“错误选项卡”仅在它可见时才被初始化(这可能是真的,因为您第一次单击它时需要更多时间才能显示...),如果不是,它确实不收集构建结果...

                  到目前为止,对于这个问题,没有比“在构建之前激活错误标签”更好的答案了。

                  我敢打赌,这就是“重启 VS”有时会起作用的原因。您会看到“错误选项卡”为空,关闭并重新启动 VS,然后,默认情况下显示“错误选项卡”,因为 VS 从上一个会话恢复了当前活动选项卡。您构建,现在“错误选项卡”被填充......!你很幸运。

                  注意:报告了一个 VS 错误:https://connect.microsoft.com/VisualStudio/feedback/details/3132689

                  【讨论】:

                  • 这个解决方案对我有用。它发生在我身上一次 - 没有显示任何警告。我打开了错误列表窗口并重建了解决方案。这次显示了警告。即使重新启动 VS,我也无法再次重现相同的问题。
                  【解决方案18】:

                  对我来说,构建失败且没有错误,但经过一些简单的调查后,我发现 VS 没有找到对 MSHTML 的引用。

                  更新到 Windows 10 后出现该行为。要修复它,您需要从 GAC 注册程序集。有关如何做到这一点,请转到此答案MSHTML DLL on Windows 10,这就是我找到答案的地方。

                  【讨论】:

                    【解决方案19】:

                    MSBuild.exe在目录(C:\Program Files (x86)\MSBuild\14.0\Bin)中改变

                    所以我只是从其他具有 vs2015 的电脑上替换 MSBuild.exe。

                    现在可以正常使用了。

                    【讨论】:

                      【解决方案20】:

                      取自this答案

                      编译失败,输出窗口中没有显示错误。

                      为了尝试找出问题的原因,我更改了 Build VS中的输出: - 菜单“工具 - 选项” - 从左侧面板:“项目和解决方案:构建和运行”: - 将“MSBuild 输出详细程度”从“最小”更改为“诊断”

                      这样做之后,我发现真正的原因实际上是依赖项目的错误。我所依赖的项目是为不同于我的框架(更新)而构建的。从而产生问题。仅当我将输出详细程度设置为诊断时才输出错误

                      【讨论】:

                      • 这不仅仅是解决问题,而是学习如何解决问题。这就是为什么我包括其他答案调试过程,因为这有助于我找出问题所在。不仅仅是随机猜测问题可能是什么
                      【解决方案21】:

                      对我来说,这是一个流氓附加财产。问题不一定是我看不到错误;错误如下:

                      子节点“2”过早退出。关闭。诊断信息可以在名为 MSBuild_*.failure.txt 的临时文件目录中的文件中找到。

                      最初,除非您尝试关闭 Visual Studio,否则构建会挂起并且不会显示任何错误。重新启动后,它会在构建时挂起很长一段时间,然后显示上述消息。

                      删除隐藏的.vs 文件夹、重建/清理解决方案以及重新启动 Visual Studio 均无效。删除附加属性确实;因此,它可能是某个无法正常工作的实际代码。

                      作为最后的手段,我会一一删除任何最近的更改,直到问题得到解决,因为这里的解决方案都没有帮助。

                      更新

                      因为我习惯于开发传统的 WPF 应用程序,所以我没有意识到你不能在 UWP 中使用 .s 来“链接”XAML 命名空间。我试图使用

                      设置附加属性
                      My.Namespace:SomeClass.SomeProperty="SomeValue"
                      

                      然而,它应该只是

                      MyNamespace:SomeClass.SomeProperty="SomeValue"
                      

                      它不像我喜欢的那样漂亮,但显然这是唯一的出路。

                      【讨论】:

                        【解决方案22】:

                        什么对我有用:

                        关闭所有文档为我解决了这个问题。 (如果智能感知停止工作,同样的解决方案)

                        (右键选项卡 - 关闭所有文档)

                        【讨论】:

                          【解决方案23】:

                          试试这个

                          从对我有用的依赖项中排除 "mstscax.dll"

                          【讨论】:

                            【解决方案24】:

                            利基问题:我刚才遇到了同样的问题。以上答案似乎都没有帮助。

                            Issue 是针对控制台程序的,不能将 Main() 方法标记为异步**,这正是我正在做的。不确定,为什么 Visual Studio 无法具体说明为什么项目没有构建(我每次都收到 0 个错误和 0 个警告)。我正在使用 Visual Studio 2015 Enterprise。

                            修复:解决方法是here

                            【讨论】:

                              【解决方案25】:

                              更新 dll 文件后,发现新文件针对的是更高版本的 .NET Framework。解决方案是转到项目属性并将目标框架更改为适当的版本。

                              【讨论】:

                                【解决方案26】:

                                我通过将 .NET Framework 从 4.5.2 更改为 4.0 找到了解决方案。

                                问题是由与当前选择的框架不兼容的引用引起的。

                                【讨论】:

                                  【解决方案27】:

                                  我刚刚清除了我的过滤器,它对我有用。清除所有过滤器图标位于消息框附近。

                                  【讨论】:

                                    【解决方案28】:

                                    开始一个新项目。将所有代码复制到以下命名空间 ConsoleApp38450983450。

                                    粘贴到命名空间ScrewedUpConsoleApp102343下的新项目

                                    完美构建和运行

                                    【讨论】:

                                      【解决方案29】:

                                      在我的情况下,这是由于文件名的路径对于 Windows 来说太长了。我是通过在 git 中恢复到以前的版本找到的。

                                      【讨论】:

                                        【解决方案30】:

                                        您应该在错误列表右侧的“整个解决方案”上设置组合框以查看所有错误。enter image description here

                                        【讨论】:

                                        • 这个相当老的问题已经有了一个公认的答案,看起来你的简短且不具描述性的答案似乎并没有增加太多。另外,请不要链接到外部网站上的图片,而是将图片添加到您的答案中!
                                        猜你喜欢
                                        • 1970-01-01
                                        • 2015-09-28
                                        • 1970-01-01
                                        • 2016-12-16
                                        • 1970-01-01
                                        • 1970-01-01
                                        • 1970-01-01
                                        • 2021-03-25
                                        • 1970-01-01
                                        相关资源
                                        最近更新 更多