CA2267: Racchiudere tra virgolette gli spazi bianchi nei valori delle direttive di programma basate su file

Proprietà Value
ID della regola CA2267
Title Spazi vuoti tra virgolette nei valori della direttiva del programma basata su file
Categoria Utilizzo
La modifica è dirompente o non dirompente Non rompente
Abilitato per impostazione predefinita in .NET 11 A titolo di avvertimento
Linguaggi applicabili C#

Cause

Il valore di una direttiva di programma basata su file #: contiene spazi bianchi non racchiusi tra virgolette.

Descrizione della regola

Prima che fossero supportate le virgolette, gli spazi vuoti nel valore di una direttiva #: di un programma basato su file venivano interpretati letteralmente. Tale modulo funziona ancora, ma è deprecato. Racchiudere tra virgolette doppie (") i valori che contengono spazi, in modo che vengano analizzati senza ambiguità.

Questa regola si applica alle direttive #:sdk, #:property, #:package, #:project, #:ref, #:include e #:exclude. Viene segnalato solo quando il valore ha un equivalente tra virgolette non ambiguo che ne preserva la semantica, quindi applicare la correzione non modifica mai il significato della direttiva.

Per altre informazioni sulle app basate su file e sulle relative direttive, vedere App basate su file.

Come correggere le violazioni

Aggiungere virgolette doppie intorno al valore semantico in modo che gli spazi vuoti vengano analizzati senza ambiguità. Per le forme composte, ad esempio un'assegnazione di proprietà o il nome e la versione di un pacchetto, mettere tra virgolette la parte dopo il separatore. Mantenere qualsiasi spazio vuoto intenzionale intorno al separatore all'esterno delle virgolette.

In Visual Studio è anche possibile applicare la correzione del codice Aggiungi virgolette intorno al valore della direttiva.

Example

Il frammento di codice seguente mostra una violazione di CA2267.

#:property Description=Hello World

Il frammento di codice seguente corregge la violazione.

#:property Description="Hello World"

La correzione del codice mantiene gli spazi vuoti intorno ai separatori e tra il tipo di direttiva e il relativo valore. Ad esempio, le direttive seguenti allineano nomi e separatori:

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

La correzione del codice aggiunge virgolette senza modificare tale allineamento:

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

Quando eliminare gli avvisi

Non è consigliabile eliminare questo avviso. Il formato tra virgolette è il modo supportato per includere gli spazi vuoti in un valore di direttiva e il formato senza virgolette è deprecato.

Eliminare un avviso

Per le app basate su file, eliminare una singola violazione aggiungendo una #:property direttiva al file del punto di ingresso.

#:property NoWarn=$(NoWarn);CA2267

Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità su none nel file di configurazione .

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

Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.

Vedere anche