.net Microsoft协定:程序集加载导致元数据导入警告

.net Microsoft协定:程序集加载导致元数据导入警告,.net,code-contracts,design-by-contract,contracts,microsoft-contracts,.net,Code Contracts,Design By Contract,Contracts,Microsoft Contracts,我正在努力学习如何使用这些库,我有以下简单的功能: internal static Engine CreateBuildEngine(Microsoft.Build.Framework.ILogger logger) { Contract.Requires( logger != null ); var engine = new Engine { DefaultToolsVersion = "3.5" }; engine.RegisterLogger(logger);

我正在努力学习如何使用这些库,我有以下简单的功能:

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;
}
尝试编译此文件时,contracts静态编译器会抛出以下警告消息:

warning : contracts: Assembly load resulted in metadata import 'Could not resolve member reference: Microsoft.Build.BuildEngine.Engine::set_DefaultToolsVersion.'
然后立即放弃(并且不尝试进行任何进一步的合同处理)。 如果我删除设置
DefaultToolsVersion
的代码,那么契约验证器工作正常,但是这是毫无意义的,因为它会导致代码不正确

我在谷歌上找不到这方面的任何提及。。。有什么方法可以解决这个问题,还是只是合同库中的一个bug?(无可否认,它处于预发布状态)


谢谢

您正在使用最新的CC吗?我刚刚将您的代码粘贴到一个空项目中,它编译得很好。哦,天哪,我刚刚意识到我的StackOverflow已被过滤为“未回答”问题,已经回答旧问题一段时间了…:P