Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.