为什么Code Contracts会生成MyAssembly.Contracts.pdb文件?

时间:2012-02-16 16:44:07

标签: .net visual-studio code-contracts

在项目属性的“代码合同”选项卡中将“合同引用程序集”设置为“构建”时,会在输出文件夹的“CodeContracts”子文件夹中创建另外两个文件(对于名为“MyAssembly”的程序集): / p>

MyAssembly.Contracts.dll
MyAssembly.Contracts.pdb

第一个文件包含所有合同元数据,我理解其用途。我不明白为什么创建第二个文件.pdb,以及合同元数据的消费者是否需要它(例如代码合同本身在另一个解决方案中,代码合同编辑器扩展等)。

如果我希望元数据的其他使用者能够正常工作,我是否还需要包含.pdb,还是完全不需要?

1 个答案:

答案 0 :(得分:3)

我在Code Contracts MSDN论坛上发布了这个问题,得到了Manuel Fahndrich的答案。

静态检查器使用生成的pdb文件指向源代码中违反的合同(PDB用于IL - >源代码映射)。这只对编写合同的人有用,因为没有源代码,合同pdb几乎没用,所以没有必要将.Contracts.pdb发送给第三方,只需.Contracts.dll