【问题标题】:how to remove Microsoft.CodeContracts reference from a solution?如何从解决方案中删除 Microsoft.CodeContracts 引用?
【发布时间】:2011-04-12 14:54:23
【问题描述】:

A 有一个大型 Web 服务解决方案(用 C# 编写,面向 .NET 3.5),它由 16 个单独的项目(许多类库、一些 Web 应用程序和设置项目)组成。它是在visual studio 2010中开发的。

我最近在试验 Microsoft.CodeContracts,在评估后认为它不适合我的需要。我删除了所有引用它的代码,并从所有引用它的项目中删除了程序集引用。

但是我的网络服务现在开始随机返回这个错误信息:

"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 的所有痕迹

【问题讨论】:

  • 您是否查看了所有 .csproj 文件?

标签: visual-studio-2010 reference code-contracts .net-assembly


【解决方案1】:

CSharp 项目文件中有许多以 CodeContracts 开头的 XML 元素。

如果您觉得有必要,请删除它们。

会有与您的配置一样多的部分 {Release, Debug} x {Any CPU, Mixed Platforms} = 4。对解决方案中的每个 *.csproj 文件执行此操作。

请记住,CodeContracts 有条件地生成/编织代码,因此您的应用可能会有不同的行为。

【讨论】:

  • 如果您想要 UI 路由,请查看每个项目的属性。有一个 CodeContracts 选项卡(通常在左下方)。在其中,有一个选项来构建、不构建或不选择。选择未选中。
  • 感谢您的回答格雷格。我编辑了各种 .csproj 文件并删除了(许多)对 CodeContracts 的引用。每个属性组中有 23 个单独的元素 - 乱七八糟!最有趣的是:%28none%29.
猜你喜欢
  • 2013-04-06
  • 1970-01-01
  • 2015-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-01
相关资源
最近更新 更多