.net 如何显示所有using指令- visual studio 2022

8zzbczxx  于 2022-12-20  发布在  .NET
关注(0)|答案(1)|浏览(882)

感谢您阅读本文!VS 2022中是否有一个选项可以在程序顶部显示所有using指令?因为我有两个同名的库,所以我必须输入这个长前缀(以便程序区分这两个库)。否则我会得到CS 0104错误。x1c 0d1x
我发现最近版本的VS 2022没有简单地在程序的开头显示所有using指令,所以我在任何地方都找不到它。

hs1ihplo

hs1ihplo1#

这是因为全局/隐式使用。它们由构建系统自动生成。
示例:

global using global::System;

它们实际上可能位于项目的C#文件中,但项目系统生成的默认值位于名为<projectdir>\obj\<Release|Debug>\<tfm>\<projectname>.GlobalUsings.g.c的文件中。因此,在名为ConsoleApp1.csproj的项目中,目标是. NET 6.0,在发布模式下,文件为obj\Release\net6.0\ConsoleApp1.GlobalUsings.g.cs
您可以使用Windows资源管理器查看该文件,也可以在Visual Studio中显示所有文件。
示例:

对于标准控制台项目,该文件的内容为:

// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;

它们是由MSBuild档案、Using项目群组所定义:

<ItemGroup>
   <Using Include="System.Collections.Generic"/>
   ...
</ItemGroup>

因此如果愿意,您可以添加自己的名称空间。
要禁用隐式全局使用(即生成<projectname>.GlobalUsings.g.cs文件),请在csproj文件中将ImplicitUsings属性设置为disable

<PropertyGroup>
    <ImplicitUsings>disable</ImplicitUsings>
</PropertyGroup>

请确保在更改后重新生成(或清理)项目,否则最初生成的文件将仍然存在。

相关问题