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

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

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

我发现构建一直在失败,

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


这里有一些你可以尝试的方法:

If your solution contains more than one project, try building each project one at a time. (You may even want to try opening each project independently of the solution.) If applicable, ensure that all of your projects (including dependencies and tests) target the same version of the .NET Framework. (Thanks to user764754 for this suggestion!) Tip: Check Tools → Extension and Updates to ensure that your packages are up-to-date. Ensure that all dependency projects are built to target the same platform as your main project. Try restarting Visual Studio. As suggested by Bill Yang, try running Visual Studio as Administrator, if you aren't already. (If you are already running Visual Studio as Administrator, perhaps try the opposite?) Try restarting your computer. Try "Rebuild All". Run "Clean Solution", then remove your *vspscc* and *vssscc* files, restart Visual Studio, and then "Rebuild All". As suggested by Andy, close Visual Studio, delete the .suo file, and restart Visual Studio. As suggested by Arun Prasad E S, close Visual Studio, delete the .vs folder in your solution directory, and then re-open Visual Studio. (This folder is auto-generated by Visual Studio and contains cache, configuration settings, and more. More details can be found in these questions: Visual Studio - Deleting .vs folder and https://stackoverflow.com/q/48897191.) As suggested by MrMalith, close Visual Studio, delete the obj folder in your solution directory, clear your temporary folder, and then re-open Visual Studio.


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

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


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

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

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

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

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


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


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


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


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

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

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

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

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

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

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


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


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

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

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


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

我有一个页面和暗号:

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

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

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


在我的情况下(VS 2019 v16.11.20),禁用文本编辑器-> c# ->高级->在选项中启用“拉”诊断解决了这个问题。