如何找到失败的原因Build没有任何错误或警告

时间:2012-11-05 19:53:04

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

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

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

无法弄清楚我应该在Visual Studio中尝试什么来解决/诊断问题。你能帮忙吗?

修改

我发现构建失败了,

  1. 从状态栏中显示的文字。
    enter image description here

  2. 从输出窗口:

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

36 个答案:

答案 0 :(得分:82)

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

我能够通过将MSBuild项目构建输出详细程度(在Visual Studio的选项/项目和解决方案/构建和运行设置区域中)设置为" Diagnostic"来确定这一点。如下所示。然后,这表明自定义操作(在我的情况下是HgVersionFile)是失败的。

Screen capture from Visual Studio showing the modified setting.

答案 1 :(得分:65)

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

Screenshot

答案 2 :(得分:54)

  • 如果解决方案包含多个项目,请尝试一次构建一个项目。
  • 尝试重新启动Visual Studio。
  • 尝试重新启动计算机。
  • 尝试“重建所有
  • 尝试“ Clean Solution ”然后删除“ vspscc ”文件和“ vssscc ”文件,然后重新启动Visual Studio,然后“< em>重建所有“。

答案 3 :(得分:19)

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

答案 4 :(得分:8)

我希望扩展Sasse's answer

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

一个项目给了我

  

&#34;类型或命名空间名称&#39; SomeNamespace&#39;名称空间中不存在&#39; BeforeSomeNamespace&#39; (你错过了一个程序集引用吗?)&#34;。

错误列表窗口中没有错误,但程序集在&#34;参考&#34;下面有一个黄色警告标志。

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

答案 5 :(得分:5)

没有什么对我有用所以我删除了.suo文件,重启了VS,清理了预测,然后构建就可以了。

答案 6 :(得分:5)

删除.vs文件夹&amp;重启VS,为我工作

enter image description here

答案 7 :(得分:4)

似乎这个问题有多个答案,所以我会从个人经验中加入我的希望,这样可以节省时间/压力。

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

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

奇怪的是,它建立/运行了一段时间,但突然,构建开始失败一次造成这个问题。不知道我为它开始抱怨不同的.NET目标版本做了什么,但我觉得Visual Studio中只有一些神秘面纱永远无法解决。

答案 8 :(得分:3)

我遇到了同样的问题,并且将问题归结为错误列表选项“构建+ Intellisense”。

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

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

答案 9 :(得分:3)

首先&#34;清洁解决方案&#34; ,然后重建soln。

如果赢了,请关闭解决方案并重新启动解决方案。

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

答案 10 :(得分:3)

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

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

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

答案 11 :(得分:3)

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

答案 12 :(得分:3)

我最近也遇到过同样的问题,我也尝试过很多类似的事情, 重新启动Visual Studio,清理并重建解决方案,重新启动PC等。 (首先确保解决方案中的所有项目都针对相同的.NET版本。)

但是显然没有任何帮助,所以我遵循以下步骤;

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

enter image description here

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

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

  3. 最后,将其全部删除。

这对我有用,希望对您的情况有用。

答案 13 :(得分:2)

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

Error pane

output pane

答案 14 :(得分:2)

使用Visual Studio 2019,我不得不``以管理员身份运行'',它最终运行正常。 因此,以管理员身份打开应用程序(以管理员身份右键单击并运行)。

答案 15 :(得分:2)

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

答案 16 :(得分:2)

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

答案 17 :(得分:2)

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

我增加了输出的详细程度(参见Richard J Foster的说明)并搜索输出&#34;失败&#34;。我很快发现哪个项目失败了,为什么:project&#34; TestRunner&#34;失败了&#34; 错误CS0246:类型或命名空间名称&#39; TestCleaner&#39;无法找到&#34; (即使代码中没有突出显示任何问题)。

检查TestRunner的引用,确定对TestCleaner的引用被标记为未解析,并且引用属性中缺少路径。删除和重新添加没有修复它。再一次,没有解释原因。

docs

我终于找到了原因:&#34; TestCleaner&#34;正在使用不同的目标框架到其他项目。这是.Net 4.5.2;其他人都是4.5。

答案 18 :(得分:1)

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

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

答案 19 :(得分:1)

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

我如何解决

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

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

答案 20 :(得分:1)

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

答案 21 :(得分:0)

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

dotnet build

然后,即使Visual Studio播放隐藏和查找错误消息,您也可以在命令行输出中看到任何错误。

答案 22 :(得分:0)

重现此症状的另一种方法:

我向现有解决方案中添加了一个新项目,并且构建输出报告了错误,例如“找不到类型或名称空间名称X ...”,但错误列表中未显示任何错误。

我引用的类在同一解决方案的其他项目中(被引用)。

事实证明,我错误地在新项目中选择了.net的早期版本。一旦我更改为与其他项目相同的版本,一切都将构建而没有任何错误。

答案 23 :(得分:0)

如果安装了nuget包'Microsoft.Net.Compilers',请确保它适合您的Visual Studio版本(Build Tools版本)。

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

因此,如果您使用VS2015

,请不要升级到1.x以上的版本

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

答案 24 :(得分:0)

在我的情况下,我为here设置了Diagnostic的MSBuild详细程度。

猜猜在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,因为var名为sut,而我将lambda命名为sut。同样,这是应该在Error List中显示的内容。确保这是Visual Studio 2019中的错误。我在Visual Studio中报告了该错误。

答案 25 :(得分:0)

我发布这个答案是因为尽管它很晦涩,但它是其他答案所独有的,有人可能会遇到它!

仔细检查 _underscore.aspx 页面

我有一个页面和代码隐藏:

`myPage.aspx` and `myPage.aspx.vb`

在构建项目时,我会在 .aspx.vb 页面上收到错误,指出 .aspx 页面上定义的属性不存在,即使页面本身会很好地构建并且输出中没有显示其他错误(即使具有诊断级别的构建输出)。

然后我在项目中发现了一个页面,该页面名称相同但带有下划线:_myPage.aspx - 不确定它来自哪里,我删除了它,并且解决方案构建得很好。

答案 26 :(得分:0)

我曾经遇到过这个问题。确实存在构建错误,但没有显示错误。我通过查看输出窗口并找出错误来解决这个问题。

答案 27 :(得分:0)

重新启动Visual Studio对我有用。另外,请尝试正常重新启动Visual Studio(不以管理员身份运行)。尝试重新启动系统,然后重复以上步骤。

答案 28 :(得分:0)

我遇到了同样的问题,我更改了工具-> 选项-> 项目和解决方案/生成并运行-> MSBuild项目生成日志文件的详细程度[诊断]。由于某些原因,此选项在日志中显示错误,我的VS在“错误”选项卡中未显示错误!

enter image description here

执行上述设置,然后在记事本/文本编辑器的输出副本中进行搜索,以查找错误。它会显示所有错误。

答案 29 :(得分:0)

由于所有操作均无效,因此发现以解决方案(.sln)打开项目时不会显示错误,而以项目打开项目时会显示错误。

答案 30 :(得分:0)

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

在Visual Studio 2015中,我打开了 TOOLS&gt;下的详细MSBuild。选项&gt;项目和解决方案&gt;建立并运行

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

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

enter image description here

答案 31 :(得分:0)

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

Image here.

干杯!

答案 32 :(得分:0)

我遇到了同样的问题!只需删除bin文件夹并重新启动01/07/17 00:00:00即可。 这就是全部。 在VS进行了测试。

答案 33 :(得分:0)

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

我还在其中一个项目上定位了一个更高的框架,所以这也可能就是问题。

答案 34 :(得分:0)

在向asp.net项目添加新页面后发生了这种情况。

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

然后我添加了所有代码注释掉的页面。成功。

然后我逐位取消注释代码,然后一切正常。

答案 35 :(得分:-1)

您的项目和VS中的 reviewviewer版本可能有所不同