CA2266:以檔案為基礎的程式進入點應以
| 房產 | 價值 |
|---|---|
| 規則識別碼 | CA2266 |
| 標題 | 以檔案為基礎的程式進入點應以 #! 開頭 |
| Category | Usage |
| 修正是破壞性或非破壞性 | Non-breaking |
| 在 .NET 10 中預設啟用 | 作為警告 |
| 適用語言 | C# |
原因
在多檔案檔案程式中,你的入口檔案不會以 shebang (#!) 行開頭。
規則描述
為了正確識別工具並支援直接在 shell 中執行,請在入口點檔案開頭加入 shebang(#!)這一行,以明確區分它與透過 #:include 或 #:ref 引入的檔案。
如何修正違規
例如,在入口點檔案的開頭加上一行 shebang,例如 #!/usr/bin/env dotnet。
Example
以下代碼摘要顯示違反了CA2266。
在 app.cs 中:
#:include "helpers.cs"
Console.WriteLine(GetMessage());
在 helpers.cs 中:
string GetMessage() => "Hello";
以下程式碼片段將修正違規問題。
在 app.cs 中:
#!/usr/bin/env dotnet
#:include "helpers.cs"
Console.WriteLine(GetMessage());
在 helpers.cs 中:
string GetMessage() => "Hello";
隱藏警告的時機
如果你故意省略了 shebang 線,且已確認你的工具仍能正確辨識入口點,則可以安全地隱藏此警告。
隱藏警告
對於基於檔案的應用程式,可以在入口檔案中加入 #:property 指令來抑制單一違規。
#:property NoWarn=$(NoWarn);CA2266
若要停用檔案、資料夾或項目的規則,請在none中將其嚴重性設定為。
[*.cs]
dotnet_diagnostic.CA2266.severity = none
如需詳細資訊,請參閱 如何隱藏程式碼分析警告。