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

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

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

我发现构建一直在失败,

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


当前回答

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

其他回答

我尝试了很多事情,比如重新启动Visual Studio,清理并重新构建解决方案,重新启动PC等,但没有一个对我有效。我最终通过以下方法解决了这个问题:

首先,确保解决方案中的所有项目(包括测试)的目标都是相同的. net版本。然后:

保存项目中挂起的更改并关闭Visual Studio 从文件资源管理器中找到准确的位置,找到“obj”文件并打开它, 然后,删除所有包含的文件(有些文件不会删除,没关系,跳过它们)。 使用运行命令(按Windows键+ R),输入“%temp%”,按enter找到临时文件。 最后,将它们全部删除。

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

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

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

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

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

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

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

再次检查_下划线。项目中的Aspx页。

我有一个页面和暗号:

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

当构建项目时,我会在.aspx.vb页面上得到错误,说明在.aspx页面上定义的属性不存在,即使页面本身会构建良好,并且在输出中没有其他错误显示(即使是诊断级构建输出)。

然后,我在项目中遇到了一个页面,它的名称与此相同,但带有下划线:_myPage。aspx -不知道它来自哪里,我删除了它,解决方案构建良好。

我想扩展一下萨斯的答案。我必须针对正确的. net版本来解决这个问题。

一个项目给了我一个错误:

“类型或命名空间名称‘SomeNamespace’在命名空间‘BeforeSomeNamespace’中不存在(您是否缺少程序集引用?)”。

在“错误列表”窗口中没有错误,但程序集在“引用”下有一个黄色警告标志。

然后我看到引用的项目目标是4.5.1,而引用的项目目标是4.6.1。将4.6.1更改为4.5.1允许整体构建成功。

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