Есть ли в Visual Studio 2010 Premium инструменты для работы с контрактами?

StackOverflow https://stackoverflow.com/questions/1608406

Вопрос

Согласно этой матрице функций Visual Studio 2010 Premium (RC) включает в себя «статический анализ кода».

Однако добавление вызовов в Contract.Requires при запуске моих методов, похоже, не имеет никакого эффекта. Я не получаю исключения во время выполнения, если контракт нарушен. Я не получаю предупреждения компилятора, если контракт не может быть доказан. Я также не могу найти " Кодовые контракты " вкладка в настройках проекта.

Я упускаю что-то очевидное или эта функция доступна только в окончательной версии?

Это было полезно?

Решение

Похоже, что существует некоторая путаница относительно того, включены или нет Code Contracts в платформу, которая идет с бета-версией VS2010, или даже в самой VS2010. форум Code Contracts (и особенно этот пост ) содержит несколько упоминаний пока без ответов.

<Ч>

Я не думаю, что Code Contracts подпадает под статический анализ кода. Я думаю, что статический анализ кода относится к другим инструментам анализа кода, таким как FxCop.

Я пытался использовать Contract.Requires в VS2010 beta 2 Ultimate Edition, но у меня такое же поведение, как и у вас. Если вы посмотрите в свойствах проекта на вкладке «Анализ кода», вы сможете включить анализ кода, но это не относится к контрактам кода.

Согласно комментарию Мелитты (из команды библиотек базовых классов) к статье о подключении Сделать статическую проверку контракта данных доступной в Professional Edition :

  

... но ограничение на инструмент статического анализа означает этот предстоящий выпуск. Он сохраняет целостность истории анализа кода, поскольку для инструментов статического анализа требуется VSTS.

Это говорит о том, что у вас (будет) должна быть версия системы группы, чтобы получить версию Code Contracts во время компиляции.

Другие советы

Чтобы получить статический анализ в бета-версии 2, необходимо загрузить и установить биты Code Contracts (1.2.21023.14 или более поздней версии) по адресу MSDN DevLabs . Затем в свойствах проекта теперь будет вкладка Code Contracts ... отсюда вы можете включить статический анализ ...

Поведение, которое вы видите, связано с тем, что API Code Contracts находится в сборке mscorlib, что позволяет утверждениям работать, но не более того.

Я предполагаю, что RTM не будет в этом необходимости.

Вам необходимо включить проверку выполнения контрактов кода в свойствах проекта. Если эта панель настроек не существует, вам необходимо установить загрузку Code Contracts от Microsoft (несмотря на то, что Contract.Requires существует в платформе).

В выпусках Professional доступна только проверка времени выполнения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top