Visual Studio 2015项目生成失败但没有错误


110

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

我将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 ==========

1
是否显示“错误列表”窗口?
Karthik

转到查看菜单->选择错误列表,然后检查是否有任何错误。理想情况下,您应该在错误列表中获取它。让您的“错误列表”窗口保持打开状态,然后尝试构建项目并查看会发生什么。
Karthik 2015年

4
所以,这就是刚刚发生的事情:我发布了这个问题,并假设我不会立即得到答复,所以我关闭了该项目。您提示我备份它,打开错误列表并重建。它运行完美,没有错误,一切成功!
罗布·格林利

@RobGreenlee:看到我的回答,我敢打赌,当您重新打开解决方案时,“错误选项卡”处于活动状态!
jpo38 '17

Answers:


100

我遇到了同样的问题,关闭并重新打开Visual Studio可以清除它。

我还尝试了清洁溶液和“清洁失败”。

在其他情况下,这可能无法解决问题,但就我而言,重新启动已为我解决了此问题。


22
如果这无助于重启。将项目添加到解决方案中时,经常会遇到此问题,而另一个Target框架引用了不同的框架项目。
巴斯蒂安·林德斯

7
就我而言,重新启动VS或清理解决方案无济于事。但是,删除.vs文件夹下的.suo解决了问题
cellik 2015年

@cellik:在我的情况下不起作用。什么是值得的。我正在使用企业版。
KMC

4
将计算机时间从CEST时区(GMT + 1)更改为美国时区(GMT-7)后,我遇到了同样的问题,似乎无法处理上次构建的时间戳是将来的时间戳。重新启动VS后,一切正常。
martinh_kentico '16

2
删除.suo文件也对我有用,但重新启动和清理却没有。
约翰·马克思

117

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

通过将“消息”图标之后的下拉列表从“构建+ Intellisense”更改为“仅构建”,您将能够看到Intellisense未检测到的在构建过程中引发的错误。请参见下面的屏幕截图:

建立


3
老兄,你是我的救星!
KMC

19
为什么“ Build + Intellisense”中不会出现“仅构建”错误?
CodyF '16

这有助于在错误列表中显示错误,但是带有错误的代码行没有红色下划线。我猜这一定是一个Intellisense问题。
德鲁

为我工作。我的已经切换到Build和Intellisense,后者隐藏了构建错误。仅生成有效并显示生成错误。
HerrimanCoder

1
先生,您为我节省了一天..
辛苦

32

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

通常关闭VS并重新打开它并不能消除这种情况。(在VS2013中,这是一种将XAML智能感知踢到后部并使它停止固定在已解决的“错误”上的常见方法。)

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

直到人们想出办法检查输出窗口,诸如错误窗口中的智能感知报告之类的内容对XAML中的对象的引用都是无效的,但是错误窗口中没有显示任何编译器错误,这会引起极大的混乱,因为它像错误提示一样“出现”报告XAML错误的智能感知。但是实际上不是。XAML错误只是CS文件无法编译但在错误窗口中未报告错误的症状。


20
对于那些仍在为看不见的错误窗口苦苦挣扎的人来说,似乎可以通过在“错误列表”窗口的“ 筛选器错误列表到”下拉列表中选择“ 仅生成”来使编译器错误显示在窗口中(该下拉列表未标记为...您可以通过将鼠标悬停在鼠标上并观察工具提示来确定它是哪一个。
罗伯特·哈维

2
@RobertHarvey ...这是关键...但是,为什么世界上Intellisense会覆盖构建?
felickz 2015年

@RobertHarvey就是这样。原来,正如这里的某个人所建议的那样,我引用的是不兼容的.net项目,但是直到我在“错误”窗格中将输出切换为“仅构建”后,我才知道问题出在哪里。一旦我做到这一点,就为我指出了这个问题的正确性。谢谢你的提示。
David Gunderson

这个答案是我的线索。搜索“错误CS”(无引号)以查找可能的阻止构建异常。
granadaCoder

PS。我的错误是我在方法中使用了相同的变量名。“字符串x = string.Empty;” 例如。我有一个异常处理程序,其中也有一个“字符串x”声明。
granadaCoder


9

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


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

7

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


没有线索。我确实使用版本控制,所以可能与时代相混淆???
MB

6

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


6

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

之后,编译器已停止并显示了错误。.
之后,我将选项从“ Diagnostic”设置回“ Minimal”(就像以前一样),并且...也可以与“ Minimal”一起使用(可以肯定的是,我也重新启动了VS)...

因此..(至少在我看来,这似乎只是更改(触摸)设置(MSBuild Output Verbosity“)解决了该问题,并且这是VS和/或Xamarin集成软件中的错误。


1
为什么这个答案没有得到更高的评价?它为您提供了调试问题的理想解决方案
John Demetriou

在下面检查我的答案。我还以为您的解决方案是正确的,但我意识到即使使用“诊断”输出级别,我的“错误”标签也将保持空白。与其他选项一样,您很可能使“错误选项卡”保持活动状态,因此它开始正常运行...
jpo38

6

我不知道我是否是唯一面临此问题的人。

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

我将时区改回了格林尼治标准时间+1:00,并且构建成功完成,没有任何错误。


非常感谢-这使我整个下午都了:-)
indra

2

我所做的(毕竟以上所述,但仍然无法正常工作)是遍历所有bin文件夹并将其全部清除(即,引用的项目也是如此)。

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


2

我遇到了这个问题,结果发现我有一个using指向空名称空间的指针。删除该using子句可以解决问题


2

检查警告。

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

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


2

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


1

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

看来编译器遵循以下设置:

  <IncludeAll Action="Error" />

但是IntelliSense对规则ID采取了默认的ACTION,即“警告”。这将解释@RobertHarvey看到的行为,在该行为中,您仅通过Build过滤输出,并显示为ERROR;但是,如果您通过Intellisene过滤,则仅显示为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


1

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


1

请检查警告。有时由于某种警告,构建也会失败。


1

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

在此处输入图片说明

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

请注意,经过深入研究,我发现只有在开始构建时才没有显示“错误选项卡”时,才会发生这种情况!

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

在此处输入图片说明

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

到目前为止,没有比“ 在构建之前激活错误”选项卡更好的答案了。

我敢打赌,这就是为什么“重新启动VS”有时有效的原因。您会看到“错误选项卡”为空,然后关闭并重新放置VS,然后默认情况下会显示“错误选项卡”,因为VS从上一个会话中还原了当前的活动选项卡。您进行了构建,现在填充了“错误选项卡” ...!你真幸运。

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


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

1

对我来说,构建失败而没有错误,但是经过一番轻率的调查,我发现VS没有找到对MSHTML的引用。

在此处输入图片说明

该行为在Windows 10更新后出现。要解决此问题,您需要从GAC注册该程序集。有关如何执行此操作的方法,请在我找到答案的Windows 10上转到此答案 MSHTML DLL


0

取自这个答案

编译失败,在输出窗口中未显示任何错误。

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

之后,我发现了真正的原因,实际上是依赖项项目存在错误。我所依赖的项目是为不同于我的框架(较新)构建的。从而造成了问题。仅当我将输出详细信息用于诊断时才输出错误


这不仅仅是解决问题,还涉及学习如何解决问题。这就是为什么我包括其他答案调试过程的原因,因为这正是帮助我找出问题所在的原因。不仅仅是对问题可能是随机的猜测
John Demetriou

0

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

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

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

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

作为最后的选择,我将一个接一个地删除所有最近的更改,直到问题解决为止,因为此处没有解决方案。

更新资料

因为我习惯于开发传统的WPF应用程序,所以我没有意识到您不能将.s与UWP一起“链接” XAML名称空间。我试图使用设置附加属性

My.Namespace:SomeClass.SomeProperty="SomeValue"

鉴于它应该是

MyNamespace:SomeClass.SomeProperty="SomeValue"

它虽然不像我喜欢的那么漂亮,但是显然这是唯一的方法。


0

对我有用的是:

关闭所有文档为我解决了这个问题。(如果intelliSense停止工作,则采用相同的解决方案)

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



0

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

问题出在控制台程序上,我不能将Main()方法标记为async **。不知道,为什么Visual Studio无法指定为什么不完全构建项目(我每次都收到0个错误和0个警告)。我正在使用Visual Studio 2015企业版。

修正:解决方法在这里


0

更新dll文件后,事实证明新文件的目标是更高版本的.NET Framework。解决方案是转到项目属性,然后将目标框架更改为适当的版本。


0

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

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

现在工作正常。



0

我刚刚清除了过滤器,它为我工作了。清除所有过滤器图标在消息框附近。



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.