Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
| Недвижимость | Ценность |
|---|---|
| Идентификатор правила | CA2267 |
| Заголовок | Пробелы в кавычках в значениях директив программы на основе файлов |
| Категория | Использование |
| Исправление является разрушающим или неразрушающим | неразрывный |
| Включен по умолчанию в .NET 11 | Как предупреждение |
| Применимые языки | C# |
Причина
Значение директивы программы #: на основе файлов содержит незаключенные пробелы.
Описание правила
До поддержки кавыка пробелы в значении директивы программы #: на основе файлов принимаются буквально. Эта форма по-прежнему работает, но не рекомендуется. Заключайте значения, содержащие пробелы, в двойные кавычки ("), чтобы они разбирались однозначно.
Это правило применяется к директивам #:sdk, #:ref, #:exclude, #:property, #:package, #:project и #:include. Об этом сообщается только тогда, когда значение имеет однозначный эквивалент в кавычках, сохраняющий семантику, поэтому применение исправления никогда не меняет смысл директивы.
Дополнительные сведения о приложениях на основе файлов и их директивах см. в разделе "Приложения на основе файлов".
Устранение нарушений
Добавьте двойные кавычки вокруг семантического значения, поэтому пробелы анализируются однозначно. Для составных форм, таких как присваивание свойства или имя пакета и его версия, заключайте в кавычки часть, следующую за разделителем. Сохраняйте все намеренно добавленные пробелы вокруг разделителя вне кавычек.
В Visual Studio также можно применить исправление кода «Добавить кавычки вокруг значения директивы».
Example
В следующем фрагменте кода показано нарушение CA2267.
#:property Description=Hello World
В следующем фрагменте кода исправлено нарушение.
#:property Description="Hello World"
Исправление кода сохраняет пробелы вокруг разделителей и между типом директивы и его значением. Например, следующие директивы выравнивают имена и разделители:
#:property Prop = Value
#:package First @ 1.0
Исправление кода добавляет кавычки без изменения этого выравнивания:
#:property Prop = "Value"
#:package First @ "1.0"
Когда следует подавлять предупреждения
Не рекомендуется подавлять это предупреждение. Форма в кавычках — это поддерживаемый способ указания пробелов в значении директивы, а форма без кавычек считается устаревшей.
Отключение предупреждений
Для приложений на основе файловой системы можно подавить отдельное нарушение, добавив директиву #:property в файл с точкой входа.
#:property NoWarn=$(NoWarn);CA2267
Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none в файле конфигурации.
[*.cs]
dotnet_diagnostic.CA2267.severity = none
Дополнительные сведения см. в разделе "Подавление предупреждений анализа кода".