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

如需詳細資訊,請參閱 如何隱藏程式碼分析警告

參見

檔案式應用程式