Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
| 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.