CA2267: Uzavření prázdných znaků v hodnotách direktiv programu založeného na souborech do uvozovek

Vlastnictví Value
Identifikátor pravidla CA2267
Titul Prázdné znaky v hodnotách direktiv programu založené na souborech
Kategorie Využití
Oprava je destruktivní nebo nedestruktivní Nezlomitelný
Ve výchozím nastavení povoleno v .NET 11 Jako upozornění
Příslušné jazyky jazyk C#

Příčina

Hodnota souborové direktivy programu #: obsahuje mezery bez uvozovek.

Popis pravidla

Než byly podporovány uvozovky, bílé znaky v hodnotě direktivy #: v programu založeném na souborech byly interpretovány doslova. Tento formulář stále funguje, ale je zastaralý. Hodnoty, které obsahují mezery, uzavřete do dvojitých uvozovek ("), aby byly parsovány jednoznačně.

Toto pravidlo platí pro direktivy #:sdk, , #:project#:package#:ref#:property, , #:include, a #:exclude direktivy. Je nahlášena pouze tehdy, když má hodnota jednoznačný ekvivalent v uvozovkách, který zachovává význam, takže použití této opravy nikdy nezmění význam direktivy.

Další informace o souborových aplikacích a jejich direktivách najdete v tématu Souborové aplikace.

Jak opravit porušení

Kolem sémantické hodnoty přidejte dvojité uvozovky, aby se prázdné znaky jednoznačně parsovaly. U složených formulářů, jako je přiřazení vlastnosti nebo název balíčku a verze, uvozujte část za oddělovačem. Zachovejte kolem oddělovače jakékoli úmyslné mezery mimo uvozovky.

V aplikaci Visual Studio můžete také použít opravu kódu Přidat uvozovky kolem hodnoty direktivy.

Example

Následující fragment kódu ukazuje porušení ca2267.

#:property Description=Hello World

Následující fragment kódu opraví porušení předpisů.

#:property Description="Hello World"

Oprava v kódu zachovává mezery kolem oddělovačů a mezi typem direktivy a její hodnotou. Například následující direktivy zarovnávají názvy a oddělovače:

#:property Prop  = Value
#:package  First @ 1.0

Oprava kódu přidá uvozovky beze změny zarovnání:

#:property Prop  = "Value"
#:package  First @ "1.0"

Kdy potlačit upozornění

Toto upozornění nedoporučujeme potlačit. Forma v uvozovkách je podporovaný způsob, jak zahrnout prázdné znaky do hodnoty direktivy, a forma bez uvozovek je zastaralá.

Potlačte upozornění

U aplikací založených na souborech potlačíte jediné porušení přidáním #:property direktivy do souboru vstupního bodu.

#:property NoWarn=$(NoWarn);CA2267

Chcete-li pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost na none v konfiguračním souboru .

[*.cs]
dotnet_diagnostic.CA2267.severity = none

Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.

Viz také