CA2266:基于文件的程序入口点应以 开头
| 财产 | 价值 |
|---|---|
| 规则 ID | CA2266 |
| 标题 | 基于文件的程序入口点应以 开头 #! |
| Category | 用法 |
| 修复是破坏性还是非破坏性 | 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
有关详细信息,请参阅 如何禁止显示代码分析警告。