CA2266: Il punto di ingresso del programma basato su file deve iniziare con #!

Proprietà Value
ID della regola CA2266
Titolo Il punto di ingresso del programma basato su file deve iniziare con #!
Categoria Utilizzo
La modifica è dirompente o non dirompente Non-breaking
Abilitato per impostazione predefinita in .NET 10 A titolo di avvertimento
Linguaggi applicabili C#

Motivo

Il file di ingresso in un programma basato su file con più file non inizia con una riga shebang (#!).

Descrizione regola

Per una corretta identificazione degli strumenti e il supporto all'esecuzione diretta nella shell, iniziare il file del punto di ingresso con una riga shebang (#!) per distinguerlo chiaramente dai file inclusi con #:include o #:ref.

Come correggere le violazioni

Aggiungere una riga shebang all'inizio del file del punto d'ingresso, ad esempio, #!/usr/bin/env dotnet.

Esempio

Il frammento di codice seguente mostra una violazione di CA2266.

In app.cs:

#:include "helpers.cs"

Console.WriteLine(GetMessage());

In helpers.cs:

string GetMessage() => "Hello";

Il frammento di codice seguente corregge la violazione.

In app.cs:

#!/usr/bin/env dotnet
#:include "helpers.cs"

Console.WriteLine(GetMessage());

In helpers.cs:

string GetMessage() => "Hello";

Quando eliminare gli avvisi

Se si omette intenzionalmente la riga shebang e si è verificato che gli strumenti utilizzati riescono comunque a identificare correttamente il punto di ingresso, è possibile disattivare questo avviso in tutta sicurezza.

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);CA2266

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

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

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

Vedere anche

App basate su file