.net 什么是Microsoft.Contracts?它来自哪里?

.net 什么是Microsoft.Contracts?它来自哪里?,.net,.net,我有一个自定义SharePoint作业,它在尝试运行时出错。当我查看错误时,我看到: 无法加载文件或程序集 'Microsoft.Contracts,版本=1.0.0.0, 文化=中立, PublicKeyToken=736440c9b414ea16'或 它的一个依赖项。系统 找不到指定的文件 我已经搜索了我的解决方案,没有任何地方提到这一点。这是从哪里来的?Microsoft.Contracts()是一个程序集,其中包含“提供了一种语言无关的方式来表达.NET程序中的编码假设”的方法 可能某个

我有一个自定义SharePoint作业,它在尝试运行时出错。当我查看错误时,我看到:

无法加载文件或程序集 'Microsoft.Contracts,版本=1.0.0.0, 文化=中立, PublicKeyToken=736440c9b414ea16'或 它的一个依赖项。系统 找不到指定的文件

我已经搜索了我的解决方案,没有任何地方提到这一点。这是从哪里来的?

Microsoft.Contracts()是一个程序集,其中包含“提供了一种语言无关的方式来表达.NET程序中的编码假设”的方法


可能某个外部程序集正在搜索此程序集。

Microsoft。Contracts
是系统的主程序集。如果您的实际代码没有使用它,那么它很可能会被引用的库使用

理论上,您应该能够删除所有与之相关的代码,并且您的程序应该运行相同的代码。毕竟,这只是一种实施实践和帮助测试的方法。实际上,我不太确定

代码合同提供了一个 语言不可知的表达方式 NET程序中的编码假设。 合同的形式为: 先决条件、后决条件和 对象不变量。合同充当 检查您的外部文件 和内部API。合同是 用于通过运行时改进测试 检查,启用静态契约 核查和文件 一代代码合同带来了 合同设计的优势 编程到所有.NET编程 语言。我们目前提供三个 工具:


完整版本仅在VS 2010 Premium/Ultimate中提供,但显然您可以获得VS其他版本的“标准版”。

您可以在此处找到该库
C:\Program Files\Reference Assembly\Microsoft\Framework.NETFramework\v4.0\mscorlib.dll

如果您使用的是.NET 3.5或更早版本,则需要添加对安装在以下位置的Microsoft.Contracts.dll的引用:

%PROGRAMFILES%/Microsoft/Contracts/publicsassemblies

可能重复@Justin,我的问题还询问当它不是我的解决方案的一部分时,它如何可能是错误的一部分。您可能的副本没有。我如何跟踪哪个外部程序集具有引用?我认为Redgate.NET Reflector可以帮助您:)我已经在使用它了。我已经浏览了所有的.NET程序集,但是什么都没有。也许你已经安装了一些其他软件的CodeContracts,现在有一个断开的引用。如果你创建一个新项目并运行它,它能工作吗?我最终使用NDepend来查找谁在使用它。