构建一个 web 项目破坏了解决方案中第二个的编译版本

Building one web project breaks the compiled version of the second in solution

我有一个包含 30 个项目的大型解决方案,其中 2 个是 web 项目(MVC 和 WebAPI)以及一堆背景 class 库项目。

我已 visual studio 设置为在 IIS 中托管 Web 项目。

如果我进行全新构建,然后对整个解决方案进行完整构建,那么通过浏览器访问这两个项目都可以正常工作。 (它们位于 diff 文件夹中并托管在 iis 中的 diff 'domains' 上)

如果我不做任何代码更改,只需重新构建 2 个 Web 项目之一,另一个就会停止工作。

说明一下,重建WebAPI项目导致MVC项目出错。反之亦然。

我得到的错误是说找不到 System.Web.Http.Formatter。详细信息说定位的程序集版本与参考版本不同。检查 bin 文件夹表明情况并非如此。

确保解决方案的所有资源都是最新的。如果您使用 Nuget,请更新所有项目中的所有包(先备份!)。听起来您的版本不匹配,复制到解决方案输出目录的 DLL 中缺少功能。它可能涉及更改每个项目的 Web.config 中的某些条目,但没有访问代码,很难确定。

更新每个库并确保版本在解决方案中的所有项目中都匹配后报告。

除了 Apache 和史蒂夫的建议,我还建议 deleting the files in your Temporary ASP.NET Files directory. If you're curious here's a good write-up 该文件夹内容的用途。