A有一个大型Web服务解决方案(用C#编写的.NET 3.5),它由16个单独的项目组成(许多类库,一些Web应用程序和安装项目)。它是在visual studio 2010中开发的。
我最近在尝试使用Microsoft.CodeContracts,经过评估后认定它不适合我的需求。我删除了引用它的所有代码,并从引用它的所有项目中删除了程序集引用。
但是我的Web服务现在已经开始随机返回此错误消息:
"Could not load file or assembly 'Microsoft.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=736440c9b414ea16' or one of its dependencies. The system cannot find the file specified."
当我删除所有代码时,它如何/为什么还在尝试加载该程序集?引用它?
在进一步调查时,我仍然发现Microsoft.Contracts.dll出现在我的Web应用程序的/ bin /文件夹中,即使没有项目引用它。它也被列为我的安装项目中的“检测到的依赖项” - 但我100%确定我的项目没有使用它!
这让我绝对疯狂 - 显然有些东西潜伏在那些拿着参考。如何从我的解决方案中删除所有跟踪的Microsoft.CodeContracts?
答案 0 :(得分:3)
CSharp项目文件中有许多以CodeContracts开头的XML元素。
如果您认为需要,请将其删除。
您将拥有与配置一样多的部分{Release,Debug} x {Any CPU,Mixed Platforms} = 4.对解决方案中的每个* .csproj文件执行此操作。
请记住,CodeContracts会有条件地生成/编织代码,因此您的应用可能会有不同的行为。