Этот вопрос переполнения стека:
Microsoft Code Contracts и CI build server
спрашивает, как заставить контракты кода работать на сервере сборки без установки Visual Studio 2010. Мы пытаемся сделать то же самое. Мы выполнили шаги, изложенные в принятом ответе, но не смогли заставить его работать.
CodeContracts не будет установлен на сервере сборки, если Visual Studio не присутствует. Итак, следуя предложению, мы сделали следующее:
- Мы скопировали содержимое
%programfiles%\Microsoft\Contracts\Bin
с машины для разработки с установленной Visual Studio 2010 Ultimate и Code Contracts Premium на сервер сборки.
- Мы также скопировали папку
MSBuild\v4.0
, которая содержит Microsoft.CodeContracts.targets
и Microsoft.CodeContractAnalysis.targets
.
Согласно документации CodeContracts,
Использование msbuild для проекта или решения, использующего контракты, включенные через пользовательский интерфейс VS, будет выполнять те же действия, что и соответствующая сборка в VS.
Это наш вариант использования, мы просто вызываем MSBuild для нашего файла решения, как показано ниже. Файл решения создается в Visual Studio со всеми ожидаемыми параметрами контракта кода, настроенными для перезаписи.
<Target Name="Release">
<MSBuild Projects = "Cofamilies\WebApplication\CofamiliesWeb.sln" Properties="Configuration=Release" />
</Target>
Но переписчик не вызывается.
У кого-нибудь есть предложения о том, что нам не хватает, и / или предлагаемые шаги по устранению неполадок?