Microsoft Code Contractsライブラリの使い方を学ぼうとしていますが、次の単純な機能があります。
internal static Engine CreateBuildEngine(Microsoft.Build.Framework.ILogger logger)
{
Contract.Requires( logger != null );
var engine = new Engine { DefaultToolsVersion = "3.5" };
engine.RegisterLogger(logger);
return engine;
}
これをコンパイルしようとすると、契約の静的コンパイラは次の警告メッセージをスローします。
warning : contracts: Assembly load resulted in metadata import 'Could not resolve member reference: Microsoft.Build.BuildEngine.Engine::set_DefaultToolsVersion.'
そしてすぐにあきらめます (そして、それ以上の契約処理を行おうとはしません)。設定するコードを削除するとDefaultToolsVersion
、コントラクト検証ツールは正しく機能しますが、コードが正しくなくなるため、これはかなり無意味です。
Googleでこれについての言及が見つかりません...これを修正できる方法はありますか、それとも契約ライブラリの単なるバグですか? (もちろん発売前の状態です)
ありがとう