Visual Studio 2015 项目构建失败但没有错误
Visual Studio 2015 project builds failed but no errors
我的项目构建全部失败,但没有显示任何错误。我尝试清理和重建,但没有用。
我将 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 ==========
我一直看到 VS2015 的常规实例报告 "build failed" 但没有在错误 window 中显示任何错误。来自古老的命令行背景,我终于去看了输出 window。输出 window 显示编译器报告错误,但这些错误没有被捕获到错误 window。 VS2013下没见过这个问题
VS 的正常关闭和重新打开并未清除此条件。 (在 VS2013 中,这是在后面踢 XAML 智能感知并使其停止固定在已修复的 "error" 上的常见方法。)
到目前为止,这一直与 XAML 页 CS 文件中的编译错误有关。我不记得在非页面 CS 文件中看到过它。
直到有人想出办法去检查输出 window,诸如 intellisense 报告错误 window 对 XAML 中对象的无效引用之类的事情,但没有显示编译器错误在错误 window 中可能会非常混乱,因为它 "appears" 就像错误是智能感知报告 XAML 错误一样。但他们实际上不是。 XAML 错误只是 CS 文件无法编译但没有在错误 window.
中报告错误的症状
我遇到了同样的问题,关闭并重新打开 Visual Studio 可以解决问题。
我也试过清理解决方案,但清理也失败了。
可能在其他情况下这不起作用,但在我的情况下,重新启动已为我解决了这个问题。
检查您所有的项目 Framework 版本,并确保它们都相同,或者至少当项目 B 的 .NET Framework 版本更高时,项目 A 不引用项目 B。
对我来说,这个问题与自定义 CodeAnalysis 规则集设置“IncludeAll”有关。
编译器似乎遵守此设置:
<IncludeAll Action="Error" />
但是 IntelliSense 对 "Warning" 的规则 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
我所做的(在完成上述所有操作之后,它仍然无法正常工作)是遍历所有 bin 文件夹并将它们全部清除(即引用的项目也是如此)。
这对我有用,希望对你也有用。
您可能没有看到所有构建错误。
通过将 "Messages" 图标后的下拉列表从 "Build + Intellisense" 更改为 "Build Only",您将能够看到在构建过程中抛出的 Intellisense 未检测到的错误。请参阅下面的屏幕截图:
当您引用不同的 .net Framework 版本项目(在我的例子中是 v4.5.2 与 v4.5)时,可能会发生这种情况。更正此问题将解决您的问题。
使用旧框架将项目迁移到 Visual Studio 2015 时也会发生这种情况。检查错误列表中的警告。您可能会看到项目目前是 .NET 2.0 版,需要 .NET 3.5 或更高版本。如果您发现类似的警告,请转到项目的属性并定位所需的 .NET Framework。
我遇到了这个问题,结果我有一个 using
指向一个空的命名空间。删除 using
子句解决了问题
删除隐藏的 .vs
文件夹为我工作的 VS2015。
(请注意,这是 SUO 文件现在所在的位置)
请检查警告。有时也会因为某种警告而导致构建失败。
我在使用 VS2015 Update 3 RC 和 Xamarin(.Forms 共享项目)时遇到了这个问题。
编译器不会停止,错误只显示在输出 window.
这仅适用于 Xamarin 项目(VB.NET 项目都按预期工作)...
为了找到问题的原因,我更改了 VS 中的构建输出:
- 菜单 "Tools - Options"
- 从左侧面板:"Projects And Solutions: Build And Run":
- 将 "MSBuild Output Verbosity" 从 "Minimal" 更改为 "Diagnostic"
之后,编译器停止并显示错误..
在那之后,我将选项从 "Diagnostic" 设置回 "Minimal" (就像以前一样)并且......它也适用于 "Minimal" (可以肯定的是,我也重新启动了VS)...
所以..似乎(至少在我的情况下)仅更改(触摸)设置(MSBuild Output Verbosity")就解决了问题,这是 VS and/or Xamarin 集成软件...
我发生的事情是,将计算机上的时区更改为 +5:30,然后将其更改回 -5:00,这让 VS 感到困惑。当我重新启动 VS 时,它再次正常工作。
摘自 回答
Compilation failed, no errors were showed in the output window.
To try find the reason for the problem, I have changed the Build
Output in VS:
- menu "Tools - Options"
- from the left panel: "Projects And Solutions: Build And Run":
- change "MSBuild Output Verbosity" from "Minimal" to "Diagnostic"
这样做之后,我找到了真正的原因,实际上是依赖项目的错误。我认为我所依赖的项目是为与我不同的框架(更新的)构建的。从而产生问题。仅当我将输出详细程度设置为诊断
时才输出错误
对我来说,是附身的流氓属性。问题不一定是我看不到错误。错误如下:
Child node "2" exited prematurely. Shutting down. Diagnostic information may be found in files in the temporary files directory named MSBuild_*.failure.txt.
最初,除非您尝试关闭 Visual Studio,否则构建会挂起并且不会显示任何错误。重新启动后,在构建时会挂起很长时间,然后显示如上信息。
删除隐藏的 .vs
文件夹、rebuilding/cleaning 解决方案和重新启动 Visual Studio 均无效。删除附加的 属性 就可以了;因此,它可能是某处无法正常工作的实际代码。
作为最后的手段,我会一一删除所有最近的更改,直到问题得到解决,因为 none 这里的解决方案有所帮助。
更新
因为我习惯于开发传统的 WPF 应用程序,所以我没有意识到在 UWP 中使用 .
s 不能有 "chained" XAML 命名空间。我试图使用
设置附加的 属性
My.Namespace:SomeClass.SomeProperty="SomeValue"
然而,它应该只是
MyNamespace:SomeClass.SomeProperty="SomeValue"
虽然没有我喜欢的那么漂亮,但显然这是唯一的出路。
当打开一个解决方案,生成它时,我可以看到 "Output tab" 中报告了一些构建错误或警告,而 "Error tab" 中没有报告任何问题。
您可以看到 "Error tab" 配置正常(选择了 "Build only" 和 "Entire solution")。
请注意,经过深入调查,我发现只有在开始构建时 "Error tab" 尚未显示时才会出现这种情况!
如果您在构建之前激活了 "Error tab"(或者如果它是您启动 Visual 时的当前选项卡),那么新发现的 errors/warnings 将正确显示:
就好像 "Error tab" 只有在可见时才被初始化(这可能是真的,因为第一次单击它需要更多时间才能显示...),如果不是, 它不收集构建结果...
到目前为止,没有比“在构建之前激活错误选项卡”更好的答案了。
我敢打赌这就是 "restarting VS" 有时会奏效的原因。您看到 "Error tab" 是空的,您关闭并重新启动 VS,然后默认显示 "Error tab",因为 VS 从上一个会话恢复了当前活动选项卡。您构建,现在 "Error tab" 被填充...!你真幸运。
注意:报告了一个 VS 错误:https://connect.microsoft.com/VisualStudio/feedback/details/3132689
对我有用的:
关闭所有文档解决了我的问题。 (如果智能感知停止工作,同样的解决方案)
(右键单击选项卡 - 关闭所有文档)
试试这个
从对我有用的依赖项中排除 "mstscax.dll"
。
小众问题: 我 运行 刚刚进入同样的问题。 None 以上答案似乎有所帮助。
问题 是针对控制台程序的,不能将 Main() 方法标记为异步**,这正是我正在做的。不确定,为什么 Visual Studio 无法具体说明项目未构建的确切原因(我每次都收到 0 个错误和 0 个警告)。我正在使用 Visual Studio 2015 Enterprise。
修复: 解决方法是 here。
不知道是不是只有我一个人遇到这个问题。
在我的例子中,当我打开 Visual Studio 时区是 GMT+1:00,构建成功。然后我将时区更改为 GMT+5:30,然后没有重新启动 Visual Studio,我尝试 运行 应用程序,但构建失败,没有任何错误或警告。
我把时区改回GMT+1:00,构建成功,没有任何错误。
对我来说,构建没有错误地失败了,但经过一些简单的调查后,我发现 VS 没有找到对 MSHTML 的引用。
更新 Windows10 后出现此行为。要修复它,您需要从 GAC 注册程序集。有关如何操作的信息,请转到此答案 我找到答案的地方。
更新一个dll文件后,发现新文件针对的是更高版本的.NET Framework。解决方案是转到项目属性并将目标框架更改为适当的版本。
检查警告..
我有新的 class 库和目标 .Net Framework 4.5,而引用项目是 4.0,这导致了引用问题。
使用目标 .Net Framework 4.0 修改 class 库后,它工作正常。
您应该在错误列表下方的右侧设置组合框,在 'Entire Solution' 上以查看所有错误。enter image description here
以上答案对我没有任何帮助。经过多次实验,我终于发现问题出在其中一个项目中对 Microsoft.Net.Compilers v2.10.0 的引用。 VS 2015 使用的 MSBuild v14 不支持该版本的 Microsoft.Net.Compilers。
MSBuild.exe在目录中更改(C:\Program Files (x86)\MSBuild.0\Bin)
所以我只是从其他装有 vs2015 的电脑上替换 MSBuild.exe。
现在工作正常。
我通过将 .NET Framework 从 4.5.2 更改为 4.0 找到了解决方案。
问题是由与当前所选框架不兼容的引用引起的。
我刚刚清除了我的过滤器并且它有效 me.The清除所有过滤器图标位于消息框附近。
开始一个新项目。将所有代码复制到以下命名空间 ConsoleApp38450983450.
粘贴到命名空间 ScrewedUpConsoleApp102343 下面的新项目中
构建并运行完善
在我的例子中,这是由于文件名的路径对于 Windows 来说太长了。我通过在 git.
中恢复到以前的版本找到了它
我的项目构建全部失败,但没有显示任何错误。我尝试清理和重建,但没有用。
我将 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 ==========
我一直看到 VS2015 的常规实例报告 "build failed" 但没有在错误 window 中显示任何错误。来自古老的命令行背景,我终于去看了输出 window。输出 window 显示编译器报告错误,但这些错误没有被捕获到错误 window。 VS2013下没见过这个问题
VS 的正常关闭和重新打开并未清除此条件。 (在 VS2013 中,这是在后面踢 XAML 智能感知并使其停止固定在已修复的 "error" 上的常见方法。)
到目前为止,这一直与 XAML 页 CS 文件中的编译错误有关。我不记得在非页面 CS 文件中看到过它。
直到有人想出办法去检查输出 window,诸如 intellisense 报告错误 window 对 XAML 中对象的无效引用之类的事情,但没有显示编译器错误在错误 window 中可能会非常混乱,因为它 "appears" 就像错误是智能感知报告 XAML 错误一样。但他们实际上不是。 XAML 错误只是 CS 文件无法编译但没有在错误 window.
中报告错误的症状我遇到了同样的问题,关闭并重新打开 Visual Studio 可以解决问题。
我也试过清理解决方案,但清理也失败了。
可能在其他情况下这不起作用,但在我的情况下,重新启动已为我解决了这个问题。
检查您所有的项目 Framework 版本,并确保它们都相同,或者至少当项目 B 的 .NET Framework 版本更高时,项目 A 不引用项目 B。
对我来说,这个问题与自定义 CodeAnalysis 规则集设置“IncludeAll”有关。
编译器似乎遵守此设置:
<IncludeAll Action="Error" />
但是 IntelliSense 对 "Warning" 的规则 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
我所做的(在完成上述所有操作之后,它仍然无法正常工作)是遍历所有 bin 文件夹并将它们全部清除(即引用的项目也是如此)。
这对我有用,希望对你也有用。
您可能没有看到所有构建错误。
通过将 "Messages" 图标后的下拉列表从 "Build + Intellisense" 更改为 "Build Only",您将能够看到在构建过程中抛出的 Intellisense 未检测到的错误。请参阅下面的屏幕截图:
当您引用不同的 .net Framework 版本项目(在我的例子中是 v4.5.2 与 v4.5)时,可能会发生这种情况。更正此问题将解决您的问题。
使用旧框架将项目迁移到 Visual Studio 2015 时也会发生这种情况。检查错误列表中的警告。您可能会看到项目目前是 .NET 2.0 版,需要 .NET 3.5 或更高版本。如果您发现类似的警告,请转到项目的属性并定位所需的 .NET Framework。
我遇到了这个问题,结果我有一个 using
指向一个空的命名空间。删除 using
子句解决了问题
删除隐藏的 .vs
文件夹为我工作的 VS2015。
(请注意,这是 SUO 文件现在所在的位置)
请检查警告。有时也会因为某种警告而导致构建失败。
我在使用 VS2015 Update 3 RC 和 Xamarin(.Forms 共享项目)时遇到了这个问题。
编译器不会停止,错误只显示在输出 window.
这仅适用于 Xamarin 项目(VB.NET 项目都按预期工作)...
为了找到问题的原因,我更改了 VS 中的构建输出:
- 菜单 "Tools - Options"
- 从左侧面板:"Projects And Solutions: Build And Run":
- 将 "MSBuild Output Verbosity" 从 "Minimal" 更改为 "Diagnostic"
之后,编译器停止并显示错误..
在那之后,我将选项从 "Diagnostic" 设置回 "Minimal" (就像以前一样)并且......它也适用于 "Minimal" (可以肯定的是,我也重新启动了VS)...
所以..似乎(至少在我的情况下)仅更改(触摸)设置(MSBuild Output Verbosity")就解决了问题,这是 VS and/or Xamarin 集成软件...
我发生的事情是,将计算机上的时区更改为 +5:30,然后将其更改回 -5:00,这让 VS 感到困惑。当我重新启动 VS 时,它再次正常工作。
摘自
Compilation failed, no errors were showed in the output window.
To try find the reason for the problem, I have changed the Build Output in VS: - menu "Tools - Options" - from the left panel: "Projects And Solutions: Build And Run": - change "MSBuild Output Verbosity" from "Minimal" to "Diagnostic"
这样做之后,我找到了真正的原因,实际上是依赖项目的错误。我认为我所依赖的项目是为与我不同的框架(更新的)构建的。从而产生问题。仅当我将输出详细程度设置为诊断
时才输出错误对我来说,是附身的流氓属性。问题不一定是我看不到错误。错误如下:
Child node "2" exited prematurely. Shutting down. Diagnostic information may be found in files in the temporary files directory named MSBuild_*.failure.txt.
最初,除非您尝试关闭 Visual Studio,否则构建会挂起并且不会显示任何错误。重新启动后,在构建时会挂起很长时间,然后显示如上信息。
删除隐藏的 .vs
文件夹、rebuilding/cleaning 解决方案和重新启动 Visual Studio 均无效。删除附加的 属性 就可以了;因此,它可能是某处无法正常工作的实际代码。
作为最后的手段,我会一一删除所有最近的更改,直到问题得到解决,因为 none 这里的解决方案有所帮助。
更新
因为我习惯于开发传统的 WPF 应用程序,所以我没有意识到在 UWP 中使用 .
s 不能有 "chained" XAML 命名空间。我试图使用
My.Namespace:SomeClass.SomeProperty="SomeValue"
然而,它应该只是
MyNamespace:SomeClass.SomeProperty="SomeValue"
虽然没有我喜欢的那么漂亮,但显然这是唯一的出路。
当打开一个解决方案,生成它时,我可以看到 "Output tab" 中报告了一些构建错误或警告,而 "Error tab" 中没有报告任何问题。
您可以看到 "Error tab" 配置正常(选择了 "Build only" 和 "Entire solution")。
请注意,经过深入调查,我发现只有在开始构建时 "Error tab" 尚未显示时才会出现这种情况!
如果您在构建之前激活了 "Error tab"(或者如果它是您启动 Visual 时的当前选项卡),那么新发现的 errors/warnings 将正确显示:
就好像 "Error tab" 只有在可见时才被初始化(这可能是真的,因为第一次单击它需要更多时间才能显示...),如果不是, 它不收集构建结果...
到目前为止,没有比“在构建之前激活错误选项卡”更好的答案了。
我敢打赌这就是 "restarting VS" 有时会奏效的原因。您看到 "Error tab" 是空的,您关闭并重新启动 VS,然后默认显示 "Error tab",因为 VS 从上一个会话恢复了当前活动选项卡。您构建,现在 "Error tab" 被填充...!你真幸运。
注意:报告了一个 VS 错误:https://connect.microsoft.com/VisualStudio/feedback/details/3132689
对我有用的:
关闭所有文档解决了我的问题。 (如果智能感知停止工作,同样的解决方案)
(右键单击选项卡 - 关闭所有文档)
试试这个
从对我有用的依赖项中排除 "mstscax.dll"
。
小众问题: 我 运行 刚刚进入同样的问题。 None 以上答案似乎有所帮助。
问题 是针对控制台程序的,不能将 Main() 方法标记为异步**,这正是我正在做的。不确定,为什么 Visual Studio 无法具体说明项目未构建的确切原因(我每次都收到 0 个错误和 0 个警告)。我正在使用 Visual Studio 2015 Enterprise。
修复: 解决方法是 here。
不知道是不是只有我一个人遇到这个问题。
在我的例子中,当我打开 Visual Studio 时区是 GMT+1:00,构建成功。然后我将时区更改为 GMT+5:30,然后没有重新启动 Visual Studio,我尝试 运行 应用程序,但构建失败,没有任何错误或警告。
我把时区改回GMT+1:00,构建成功,没有任何错误。
对我来说,构建没有错误地失败了,但经过一些简单的调查后,我发现 VS 没有找到对 MSHTML 的引用。
更新 Windows10 后出现此行为。要修复它,您需要从 GAC 注册程序集。有关如何操作的信息,请转到此答案
更新一个dll文件后,发现新文件针对的是更高版本的.NET Framework。解决方案是转到项目属性并将目标框架更改为适当的版本。
检查警告..
我有新的 class 库和目标 .Net Framework 4.5,而引用项目是 4.0,这导致了引用问题。
使用目标 .Net Framework 4.0 修改 class 库后,它工作正常。
您应该在错误列表下方的右侧设置组合框,在 'Entire Solution' 上以查看所有错误。enter image description here
以上答案对我没有任何帮助。经过多次实验,我终于发现问题出在其中一个项目中对 Microsoft.Net.Compilers v2.10.0 的引用。 VS 2015 使用的 MSBuild v14 不支持该版本的 Microsoft.Net.Compilers。
MSBuild.exe在目录中更改(C:\Program Files (x86)\MSBuild.0\Bin)
所以我只是从其他装有 vs2015 的电脑上替换 MSBuild.exe。
现在工作正常。
我通过将 .NET Framework 从 4.5.2 更改为 4.0 找到了解决方案。
问题是由与当前所选框架不兼容的引用引起的。
我刚刚清除了我的过滤器并且它有效 me.The清除所有过滤器图标位于消息框附近。
开始一个新项目。将所有代码复制到以下命名空间 ConsoleApp38450983450.
粘贴到命名空间 ScrewedUpConsoleApp102343 下面的新项目中
构建并运行完善
在我的例子中,这是由于文件名的路径对于 Windows 来说太长了。我通过在 git.
中恢复到以前的版本找到了它