Visual Studio 2015项目构建失败但没有错误

时间:2015-08-10 03:59:01

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

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

我将MSBuild输出详细程度更改为'Diagnostic',希望它可以帮助我识别问题,现在我卡住了。这是输出的样子:

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

30 个答案:

答案 0 :(得分:104)

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

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

Build

答案 1 :(得分:97)

我遇到了同样的问题,关闭并重新打开Visual Studio会将其清除。

我也尝试过清洁解决方案和清洁失败。

可能还有其他情况,这不能解决问题,但在我的情况下,重启已经为我解决了这个问题。

答案 2 :(得分:32)

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

通常关闭VS并重新打开它并没有清除这种情况。 (在VS2013中,这是在后方踢XAML智能感知的常用方法,并使其停止修复已修复的错误"。

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

在确定要检查输出窗口之前,错误窗口中的intellisense报告之类的内容对XAML中的对象的引用无效,但错误窗口中没有显示编译器错误可能会非常混乱,因为它"出现"像错误是intellisense报告XAML错误。但他们实际上并不是。 XAML错误只是CS文件无法编译但在错误窗口中没有报告错误的症状。

答案 3 :(得分:9)

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

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

答案 4 :(得分:7)

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

答案 5 :(得分:6)

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

执行此操作后,编译器已停止并显示错误..
在那之后,我已经从" Diagnostic"到"最小" (就像之前一样)和......它也和#34; Minimal" (当然,我也重启了VS)......

所以......似乎(至少在我的情况下)只改变(触摸)设置(MSBuild Output Verbosity")已经解决了问题,这是VS和/或Xamarin集成软件......

答案 6 :(得分:6)

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

答案 7 :(得分:5)

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

答案 8 :(得分:3)

我不知道自己是否是唯一一个面临这个问题的人。在我的情况下,当我打开Visual Studio时,时区是GMT + 1:00,构建成功然后我将时区更改为GMT + 5:30然后没有重新启动Visual Studio我尝试运行应用程序但是构建失败没有任何错误或警告,然后我将时区更改回GMT + 1:00并且构建成功没有任何错误。

答案 9 :(得分:2)

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

答案 10 :(得分:2)

检查警告..

我有一个新的类库,其目标是.Net Framework 4.5,而引用项目是4.0,这引起了参考问题。

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

答案 11 :(得分:2)

我遇到了这个问题,事实证明我有一个using指向一个空命名空间。删除using子句解决了问题

答案 12 :(得分:1)

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

enter image description here

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

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

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

enter image description here

就好像“错误选项卡”只有在可见时才被初始化(这可能是真的,因为第一次点击它需要花费更多时间......),如果不是,那就是不收集构建结果......

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

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

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

答案 13 :(得分:1)

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

答案 14 :(得分:1)

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

答案 15 :(得分:1)

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

编译器似乎遵守此设置:

  <IncludeAll Action="Error" />

但IntelliSense在规则ID上采用了默认的ACTION,即#34;警告&#34;。这可以解释@RobertHarvey在“Build Only”中过滤输出的行为,它显示为 ERROR ,但如果按Intellisene过滤,则显示为警告。默认的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

答案 16 :(得分:1)

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

这对我有用,希望它也适合你。

答案 17 :(得分:0)

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

答案 18 :(得分:0)

就我而言,这是由文件名路径对 Windows 而言太长造成的。我通过在 git 中恢复到以前的版本找到它。

答案 19 :(得分:0)

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

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

构建和运行完美

答案 20 :(得分:0)

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

答案 21 :(得分:0)

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

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

答案 22 :(得分:0)

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

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

现在可以正常工作了。

答案 23 :(得分:0)

取自this回答

  

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

     

为了找到问题的原因,我更改了Build   VS中的输出:    - 菜单“工具 - 选项”    - 从左侧面板:“项目和解决方案:构建和运行”:    - 将“MSBuild Output Verbosity”从“Minimal”更改为“Diagnostic”

在这样做之后,我找到了真正的原因,这实际上是依赖项目的错误。我预测我依赖于为不同的框架(更新)而不是我的。从而创造了这个问题。当我将输出详细程度放到诊断

时,错误才被输出

答案 24 :(得分:0)

对我而言,构建失败没有错误,但经过一些轻微的调查后我发现VS没有找到对MSHTML的反应。

enter image description here

更新到Windows 10后出现此问题。要修复此问题,您需要从GAC注册程序集。如何做到这一点,请回答MSHTML DLL on Windows 10我找到答案的答案。

答案 25 :(得分:0)

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

问题用于控制台程序,无法将Main()方法标记为async **,这就是我正在做的事情。不确定,为什么Visual Studio无法指定项目未构建的原因(每次都有0个错误和0个警告)。我正在使用Visual Studio 2015 Enterprise。

修复:解决此问题的方法是here

答案 26 :(得分:0)

试试这个

从依赖关系中排除"mstscax.dll"为我工作。

答案 27 :(得分:0)

对我有用的是什么:

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

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

答案 28 :(得分:0)

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

  

子节点“2”过早退出。关机诊断信息可以在名为MSBuild _ * .failure.txt。

的临时文件目录中的文件中找到

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

删除隐藏的.vs文件夹,重建/清除解决方案以及重新启动Visual Studio都不起作用。删除所附属性;因此,它可能是某些无法正常工作的实际代码。

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

<强>更新

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

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

然而,它应该只是

MyNamespace:SomeClass.SomeProperty="SomeValue"

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

答案 29 :(得分:-2)

您应该在错误列表的右侧将组合框设置在&#39;整个解决方案&#39;查看所有错误。enter image description here