CA2267: Citera blanksteg i filbaserade programdirektivvärden

Fastighet Value
Regel-ID CA2267
Titel Citera blanksteg i filbaserade programdirektivvärden
Kategori Användning
Korrigeringen är antingen brytande eller icke-brytande Oumbrytbar
Aktiverad som standard i .NET 11 Som varning
Tillämpliga språk C#

Orsak

Värdet för ett filbaserat programdirektiv #: innehåller ett blanksteg som inte anges.

Regelbeskrivning

Innan stöd för citationstecken infördes tolkades blanksteg i värdet för direktivet #: i ett filbaserat program bokstavligt. Formuläret fungerar fortfarande men är inaktuellt. Omslut värden som innehåller blanksteg med dubbla citattecken (") så att de tolkas entydigt.

Den här regeln gäller för direktiven #:sdk, #:property, #:package, #:project, #:include#:refoch #:exclude . Det rapporteras endast när värdet har en entydig, semantikbevarande citerad motsvarighet, så att tillämpa korrigeringen ändrar aldrig innebörden av direktivet.

Mer information om filbaserade appar och deras direktiv finns i Filbaserade appar.

Så här åtgärdar du överträdelser

Lägg till dubbla citattecken runt det semantiska värdet så att blanksteg tolkas entydigt. För sammansatta formulär, till exempel en egenskapstilldelning eller ett paketnamn och en version, anger du delen efter avgränsaren. Håll alla avsiktliga blanksteg runt avgränsaren utanför citattecken.

I Visual Studio kan du även använda korrigeringen Lägg till citattecken kring direktivets värdekod.

Example

Följande kodfragment visar ett brott mot CA2267.

#:property Description=Hello World

Följande kodfragment åtgärdar överträdelsen.

#:property Description="Hello World"

Kodkorrigeringen bevarar blanksteg runt avgränsare och mellan direktivtyp och dess värde. Följande direktiv justerar till exempel namn och avgränsare:

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

Kodkorrigeringen lägger till citattecken utan att ändra justeringen:

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

När du ska ignorera varningar

Det rekommenderas inte att undertrycka denna varning. Formen med citationstecken är det sätt som stöds för att inkludera blanksteg i värdet för ett direktiv, och formen utan citationstecken är föråldrad.

Undertryck en varning

För filbaserade appar undertrycker du en enda överträdelse genom att lägga till ett #:property direktiv i startpunktsfilen.

#:property NoWarn=$(NoWarn);CA2267

Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none i konfigurationsfilen.

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

Mer information finns i Så här utelämnar du kodanalysvarningar.

Se även