Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
| 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.