CA2266: Startpunkten för filbaserat program ska börja med #!

Property Value
Regel-ID CA2266
Titel Startpunkten för filbaserat program ska börja med #!
Kategori Förbrukning
Korrigeringen är antingen brytande eller icke-brytande Non-breaking
Aktiverad som standard i .NET 10 Som varning
Tillämpliga språk C#

Orsak

Startpunktsfilen i ett filbaserat program med flera filer börjar inte med en shebang-rad (#!).

Regelbeskrivning

För korrekt verktygsidentifiering och stöd för direct shell-körning startar du startpunktsfilen med en shebang-rad (#!) för att tydligt skilja den från filer som tas in med #:include eller #:ref.

Så här åtgärdar du överträdelser

Lägg till en shebang-rad i början av ingångsfilen, till exempel #!/usr/bin/env dotnet.

Exempel

Följande kodfragment visar ett brott mot CA2266.

I app.cs:

#:include "helpers.cs"

Console.WriteLine(GetMessage());

I helpers.cs:

string GetMessage() => "Hello";

Följande kodfragment åtgärdar överträdelsen.

I app.cs:

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

Console.WriteLine(GetMessage());

I helpers.cs:

string GetMessage() => "Hello";

När du ska ignorera varningar

Om du avsiktligt utelämnar shebang-raden och har bekräftat att dina verktyg fortfarande kan identifiera startpunkten korrekt, är det säkert att undertrycka den här varningen.

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

Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none i konfigurationsfilen.

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

Mer information finns i Så här utelämnar du kodanalysvarningar.

Se även

Filbaserade appar