プロジェクトのプロパティの[Code Contracts]タブで[Contract Reference Assembly]を[Build]に設定すると、出力フォルダの "CodeContracts"サブフォルダに2つの追加ファイル( "MyAssembly"という名前のアセンブリ)が作成されます。コードコントラクトがMyAssembly.Contracts.pdbファイルを生成するのはなぜですか?
MyAssembly.Contracts.dll
MyAssembly.Contracts.pdb
最初のファイルにはすべての契約メタデータが含まれており、その使用法を理解しています。私が理解していないのは、2番目のファイル(.pdb)が作成された理由、および契約メタデータのコンシューマーがそれを必要とするかどうか(例:別のソリューションのコードコントラクト自体、コードコントラクトエディタ拡張機能など)
メタデータの他のコンシューマを正しく動作させるには、.pdbも含める必要がありますか、まったく必要ありませんか?
デバッグ外では必要ありません。 http://msdn.microsoft.com/en-us/library/yd4f8bd1.aspxを参照してください。 –
可能な複製[pdbファイルの目的は何ですか?](http://stackoverflow.com/questions/3582751/what-is-the-purpose-of-pdb-files) –
@Igby:それ以降アセンブリにはコードが含まれていないし、実行またはデバッグすることすらできません。そのPDBの目的は何ですか?なぜそれも生成されますか?そして、コントラクトアセンブリの全目的は、まさにPDBに含まれるメタデータを提供することなので、実際のDLLが提供しない有用なメタデータを提供しますか? –