在项目属性的“代码合同”选项卡中将“合同引用程序集”设置为“构建”时,会在输出文件夹的“CodeContracts”子文件夹中创建另外两个文件(对于名为“MyAssembly”的程序集): / p>
MyAssembly.Contracts.dll
MyAssembly.Contracts.pdb
第一个文件包含所有合同元数据,我理解其用途。我不明白为什么创建第二个文件.pdb,以及合同元数据的消费者是否需要它(例如代码合同本身在另一个解决方案中,代码合同编辑器扩展等)。
如果我希望元数据的其他使用者能够正常工作,我是否还需要包含.pdb,还是完全不需要?
答案 0 :(得分:3)
我在Code Contracts MSDN论坛上发布了这个问题,得到了Manuel Fahndrich的答案。
静态检查器使用生成的pdb文件指向源代码中违反的合同(PDB用于IL - >源代码映射)。这只对编写合同的人有用,因为没有源代码,合同pdb几乎没用,所以没有必要将.Contracts.pdb
发送给第三方,只需.Contracts.dll
。