Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
| 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.