1

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でこれについての言及が見つかりません...これを修正できる方法はありますか、それとも契約ライブラリの単なるバグですか? (もちろん発売前の状態です)

ありがとう

4

0 に答える 0