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