我有一个WebApplication包含引用WCF服务。

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

不知道我应该在Visual Studio中尝试什么来解决/诊断问题。你能帮帮我吗?

我发现构建一直在失败,

从状态栏中显示的文本。 从输出窗口: ========== 构建:0成功或更新,1失败,0跳过 ========== 输出选项卡包含配置详细信息。 ------构建开始:项目:<projectName here>配置:调试任何CPU


当前回答

删除隐藏的.vs文件夹并重新启动Visual Studio。这对我很管用。

其他回答

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

我也遇到过类似的情况。在我的案例中,出现在csproj文件的BeforeBuild目标中的自定义操作(来自Nuget.org - http://www.nuget.org/packages/MSBuildVersioning/上提供的MSBuildVersioning包)失败了,没有在正常的地方触发任何错误消息。

我可以通过设置“MSBuild项目构建输出verbose”(在最新的Visual Studio的工具选项卡[路径:Tools > Options >构建和运行])为“诊断”来确定这一点,如下所示。这表明自定义操作(在我的例子中是HgVersionFile)失败了。

什么都不能为我工作,所以我删除了.suo文件,重新启动VS,清理投影,然后构建将工作。

我注意到,如果在错误列表中选择了“构建+智能感知”,它会导致错误消息被吞噬。

将此选项更改为“Build Only”,将显示所有错误消息:

我不知道这是否是Visual Studio中的bug,但它确实揭示了隐藏的错误消息,这是确定失败的关键。

有些人,比如Richard J Foster,建议将“MSBuild项目构建输出详细信息”设置为“诊断”(可能的最高选项),但这并没有为我解决问题,因为Visual Studio似乎在抑制错误消息本身。

作为一种替代方法,您可以尝试使用来自“output”选项卡的原始输出消息,这些消息没有被Visual Studio过滤。要么就地搜索字符串"error"和/或"failed",要么将所有输出复制到您最喜欢的文本编辑器并在那里进行搜索。

为了确保每次构建时都出现输出窗口,您可以转到工具→选项→项目和解决方案→常规,并确保选中“在构建开始时显示输出窗口”选项。

作为额外的故障排除步骤,还可以通过运行dotnet build从PowerShell命令行构建项目。这将向您显示完整的构建输出,包括Visual Studio可能隐藏的任何错误。

删除隐藏的.vs文件夹并重新启动Visual Studio。这对我很管用。