Контракты Microsoft: загрузка сборки привела к предупреждению импорта метаданных - PullRequest
1 голос
/ 17 июня 2009

Я пытаюсь освоить библиотеки 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 ... Есть ли способ, которым я могу это исправить, или это просто ошибка в библиотеке контрактов? (по общему признанию это в предварительном статусе статуса)

Спасибо

...