提问人:suitendaal 提问时间:8/11/2022 最后编辑:suitendaal 更新时间:8/11/2022 访问量:510
为什么 StyleCopAnalyzers 认为应该在命名空间中声明全局使用,而这种语法是不可能的?
Why does StyleCopAnalyzers think that global usings should be declared within a namespace, when such syntax is not possible?
问:
我正在创建一个NUnit测试项目,在创建该项目时,MS Visual Studio创建了一个名为Usings.cs的文件,其中包含以下行
global using NUnit.Framework;
它告诉项目在每个文件中包含 NUnit 框架。
我一直在这个测试项目上运行 StyleCopAnalyzers,它一直在报告
SA1200:Using 指令应出现在命名空间声明中。
但是,当我将 within 命名空间声明global using
namespace TestProject
{
global using NUnit.Framework;
}
我收到错误
CS8914:不能在命名空间声明中使用全局 using 指令。
正确的方法是什么?我应该将 Usings.cs 文件与 ?global usings
答:
1赞
Tanzim Siddiqee
8/11/2022
#1
在 .csproj 中,添加以下行
<ItemGroup>
<Using Include="NUnit.Framework" />
</ItemGroup>
评论
1赞
suitendaal
8/11/2022
这只是一种解决方法,而不是为什么 StyleCopAnalyzers 不允许我使用 的问题的答案,或者在使用 StyleCopAnalyzers 时如何使用global usings
global usings
0赞
Tanzim Siddiqee
8/11/2022
在 C# 10.0 中,可以使用全局使用。以及随 NET 6.0 一起发布的 C# 10.0。你能告诉我你的 c# 版本吗?
0赞
suitendaal
8/11/2022
我使用的是 .NET 6.0,所以那是 C# 10.0
0赞
Tanzim Siddiqee
8/11/2022
您是否从 .csproj 文件中删除了删除 <ImplicitUsings>enable</ImplicitUsings>?
0赞
suitendaal
8/15/2022
是的,但这与 NUnit 框架有什么关系?
评论
<Using Include="NUnit.Framework" />