CA2267: Leerraum in Werten dateibasierter Programmdirektiven in Anführungszeichen setzen

Eigentum Wert
Regel-ID CA2267
Title Anführungszeichen in dateibasierten Programmdirektive-Werten
Kategorie Usage
Die Behebung ist eingreifend oder nicht eingreifend Non-breaking
Standardmäßig in .NET 11 aktiviert Als Warnung
Anwendbare Sprachen C#

Ursache

Der Wert einer dateibasierten Programmdirektive #: enthält Leerzeichen, die nicht in Anführungszeichen eingeschlossen sind.

Regelbeschreibung

Bevor die Zitate unterstützt wurden, wurden Leerzeichen in einem dateibasierten Programmdirektive-Wert #: wörtlich genommen. Dieses Formular funktioniert zwar noch, ist aber veraltet. Setzen Sie Werte, die Leerzeichen enthalten, in doppelte Anführungszeichen ("), damit sie eindeutig geparst werden.

Diese Regel gilt für die Direktiven #:sdk, #:property, #:project, #:package, #:ref, #:include und #:exclude. Es wird nur gemeldet, wenn der Wert ein eindeutiges, in Anführungszeichen gesetztes semantikerhaltendes Äquivalent hat, sodass die Anwendung der Korrektur niemals die Bedeutung der Direktive ändert.

Weitere Informationen zu dateibasierten Apps und deren Direktiven finden Sie unter dateibasierte Apps.

Wie man Verstöße behebt

Fügen Sie doppelte Anführungszeichen um den semantischen Wert hinzu, sodass Leerzeichen eindeutig analysiert werden. Bei zusammengesetzten Formen, z. B. einer Eigenschaftszuweisung oder einem Paketnamen mit Versionsangabe, setzen Sie den Teil nach dem Trennzeichen in Anführungszeichen. Behalten Sie absichtliche Leerzeichen um das Trennzeichen außerhalb der Anführungszeichen bei.

In Visual Studio können Sie auch die Codekorrektur Anführungszeichen um den Direktivenwert hinzufügen anwenden.

Example

Der folgende Codeausschnitt zeigt einen Verstoß gegen CA2267.

#:property Description=Hello World

Der folgende Codeausschnitt behebt den Verstoß.

#:property Description="Hello World"

Die Codekorrektur behält Leerzeichen um Trennzeichen und zwischen dem Direktiventyp und dem zugehörigen Wert bei. Zum Beispiel richten die folgenden Direktiven Namen und Trennzeichen aus:

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

Die Codekorrektur fügt Anführungszeichen hinzu, ohne diese Ausrichtung zu ändern:

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

Wann sollten Warnungen unterdrückt werden?

Es wird nicht empfohlen, diese Warnung zu unterdrücken. Die Form in Anführungszeichen ist die unterstützte Methode, um Leerzeichen in einem Wert einer Direktive anzugeben, und die Form ohne Anführungszeichen ist veraltet.

Unterdrücken einer Warnung

Unterdrücken Sie bei dateibasierten Apps eine einzelne Verletzung, indem Sie der Einstiegspunktdatei eine #:property Direktive hinzufügen.

#:property NoWarn=$(NoWarn);CA2267

Um die Regel für eine Datei, einen Ordner oder ein Projekt zu deaktivieren, legen Sie den Schweregrad auf none in der Konfigurationsdatei fest.

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

Weitere Informationen finden Sie unter Vorgehensweise: Unterdrücken von Codeanalyse-Warnungen.

Siehe auch