Как мы можем исправить или подавить сообщения CA0503 и CA0505 из анализа кода в Visual Studio 11 Beta

Когда я запускаю анализ кода в довольно простом проекте, я немедленно получаю нарушения «CA0503 Issue Running Code Analysis» и «CA0505 Issue Running Code Analysis». На странице документации CA0503 говорится: "Это свойство устарело. Используйте замещающее свойство". Однако он не указывает на заменяющее свойство, как бороться с ошибкой или как ее подавить. По-видимому, это скрытый набор правил Microsoft, и вы не можете просто отключить правило.

На на странице документации CA0505 аналогично указано: "Устаревшее свойство будет игнорироваться, поскольку вышестоящее свойство определено». Далее в нем говорится: «Предупреждение CA505 генерируется, когда указанные свойства анализа устаревшего и замещающего кода содержат значения в файле конфигурации проекта или сборки. Чтобы решить эту проблему, удалите устаревшее свойство».

Текстовый поиск по всему решению для CA0503 или CA0505 ничего не возвращает. Однако поиск «CodeAnalysisRules» находит строку в каждом из двух моих файлов проекта:

‹CodeAnalysisRules>-Microsoft.Design#CA2210‹/CodeAnalysisRules›

При аналогичном текстовом поиске не найдена соответствующая строка для "CodeAnalysisRuleSet".

Кто-нибудь еще сталкивался с этим и, возможно, нашел способ исправить или подавить эти сообщения?


person John Tobler    schedule 01.05.2012    source источник
comment
На какие свойства он жалуется? Какие точные диагнозы выдает анализ?   -  person James McNellis    schedule 02.05.2012
comment
Что ж, я предоставил информацию, но вот результаты анализа кода: CA0505 Проблема при выполнении анализа кода CA0505: свойство CodeAnalysisRules будет игнорироваться, поскольку определено свойство CodeAnalysisRuleSet. [Ошибки и предупреждения] (глобальные) и проблема CA0503 при выполнении анализа кода CA0503: свойство CodeAnalysisRules устарело. Вместо этого используйте свойство CodeAnalysisRuleSet. [Ошибки и предупреждения] (всего) . Это вся информация, которую предоставляет мне Microsoft.   -  person John Tobler    schedule 02.05.2012
comment
Обратите внимание, что это новая установка бета-версии Visual Studio 11, и у меня не было времени на обычные настройки; так что это VS11 в основном из коробки.   -  person John Tobler    schedule 02.05.2012
comment
<CodeAnalysisRules> был заменен <CodeAnalysisRuleSet>. Если вы измените файл проекта на использование <CodeAnalysisRuleSet>, предупреждение должно исчезнуть.   -  person James McNellis    schedule 02.05.2012


Ответы (3)


У меня возникла эта проблема при обновлении проекта Visual Studio 2008 до Visual Studio 2013. Во время обновления появилась ошибка о невозможности добавить файл .ruleset из-за того, что я буду называть «особыми причинами контроля версий TFS».

Перед обновлением мой файл проекта (в моем случае файл .csproj) содержал элемент <CodeAnalysisRules>. Он содержал огромную строку, относящуюся к правилам анализа кода для проекта. После обновления элемент CodeAnalysisRules моего файла проекта не изменился, но в каталоге проекта был создан файл Migrated rules for [project name].ruleset.

Чтобы исправить это, я:

  1. Добавил в проект файл .ruleset (возможно, он уже был добавлен для вас, мой просто был сброшен в каталог проекта).
  2. Выгрузил проект.
  3. Обновил файл .csproj, полностью удалив элемент <CodeAnalysisRules> и добавив вместо него <CodeAnalysisRuleSet>Migrated rules for [project name].ruleset</CodeAnalysisRuleSet> или любое другое имя файла .ruleset.
  4. Перезалил проект.

Я предполагаю, что во время успешного обновления Visual Studio анализирует содержимое старого элемента <CodeAnalysisRules>, создает на его основе файл .ruleset и связывает его с проектом. Думаю, это не всегда работает.

person Alex Humphrey    schedule 26.06.2014

Если вы обновили решение из предыдущей версии Visual Studio и определили централизованный файл правил. Вам необходимо вручную удалить его из ваши проекты.

person Preben Huybrechts    schedule 28.09.2012

Во время анализа кода ваш файл проекта обновляется автоматически. Будет добавлена ​​запись — CodeAnalysisRules. Это причина для этого предупреждения. Думаю, нужно настроить так, чтобы элемент CodeAnalysisRules не заходил в файл проекта.

person LCJ    schedule 12.06.2012