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

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

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

我发现构建一直在失败,

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


当前回答

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

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

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

其他回答

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

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

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

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

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

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

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

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

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

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

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

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