Microsoft Code Contracts и CI build server

Мы переходим на .NET 4 и очень заинтересованы в реализации новых возможностей Design By Contract.

Как мы знаем, двигатель Code Contract требует установки дополнения Code Contract alt text
и VS Ultimate или Premium (для статической проверки).

Вот мои вопросы:

  1. Могу ли я использовать переписывание контракта кода

    Как мы знаем, двигатель Code Contract требует установки дополнения Code Contract alt text
    и VS Ultimate или Premium (для статической проверки).

    Вот мои вопросы:

    1. Могу ли я использовать переписывание контракта кода

      Как мы знаем, двигатель Code Contract требует установки дополнения Code Contract alt text
      и VS Ultimate или Premium (для статической проверки).

      Вот мои вопросы:

      1. Могу ли я использовать переписывание контракта кода без установки VS на сервере сборки CI (TeamCity)?
      2. msbuild задачи для выполнения проверки контракта?
      3. Используете ли вы проверку кода контракта со сборками CI?

35
задан Sergey Mirvoda 25 August 2010 в 18:33
поделиться

1 ответ

Могу ли я использовать перезапись контракта кода без установки VS на сборке CI сервер (TeamCity)?

Да. Установите CodeContracts на сервер сборки. (Если он отказывается устанавливаться на машину без Visual Studio, просто скопируйте перечисленные ниже файлы и их зависимости на сервер сборки.) После установки вы найдете инструменты CodeContract, установленные в %programfiles%\Microsoft\Contracts\ Бин. В этом каталоге есть 4 исполняемых файла, которые могут вас заинтересовать:

  1. ccrewrite.exe — программа для перезаписи двоичных файлов. Это должно быть выполнено после компиляции. Он превращает ваши контракты в проверки во время выполнения или во что вы хотите, чтобы они превратились.

  2. ccrefgen.exe — может генерировать эталонные сборки контракта вместе с вашими сборками. Это полезно, если вы отправляете библиотеки DLL для использования другими сторонами.

  3. cccheck.exe — программа статической проверки. На сервере сборки вы запустите этот инструмент над своими сборками, содержащими контракты, и он будет выдавать предупреждения и сообщения при обнаружении потенциальных проблем.

  4. ccdocgen.exe — генерирует XML-документацию из контрактов в вашем коде. Вы можете использовать это, если вы отправляете DLL с контрактами для использования другими сторонами или если вам просто нужны внутренние документы по вашему коду.

Существуют ли какие-либо задачи msbuild для выполнения проверки контракта?

Да. Вместе с CodeContracts поставляются две задачи MSBuild: в том же каталоге установки CodeContracts проверьте папку MSBuild\[framework version]. В этом каталоге есть 2 файла, которые должны вам помочь: Microsoft.CodeContracts.targets и Microsoft.CodeContractAnalysis.targets.

Согласно документации CodeContracts,

Расширение сценария msbuild Microsoft .Договор. цели содержат дополнительные действия сборки для контракта времени выполнения контрольно-измерительные приборы и статическая проверка шаги. В результате такого подхода можно использовать тот же функциональность при построении из командной строке с помощью команды msbuild. Использование msbuild в проекте или решении который использует контракты, включенные через VS пользовательский интерфейс будет работать так же действия как соответствующий билд под ВС.

Как видите, возможна и поддерживается интеграция инструментов в сборки CI через цели MSBuild.

Используете ли вы проверку Code Contract для сборок CI?

Предполагая, что вы имеете в виду статическую проверку с предупреждениями/сообщениями, я сделал это лично, но не делал этого в большом проекте.

Надеюсь, это поможет!

Подсказка к книге Джона Скита C# In Depth для объяснения инструментов командной строки.

46
ответ дан 27 November 2019 в 07:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: