VS2022禁用全局using,禁用GlobalUsings.g.cs

多個框架時,可能會出現全局引用出錯

例如一個項目的TargetFrameworks爲:

 <TargetFrameworks>net6.0;net5.0;netstandard2.1;net472;net40</TargetFrameworks>

可能會出現:

XXX.GlobalUsings.g.cs(2,1,2,29): error CS8773: 功能“全局 using 指令”在 C# 9.0 中不可用。請使用語言版本 10.0 或更高版本。

好的,先把語言升級

    <LangVersion>10.0</LangVersion>

又出錯了

嚴重性    代碼    說明    項目    文件    行    禁止顯示狀態
錯誤    CS0234    命名空間“System.Net”中不存在類型或命名空間名“Http”(是否缺少程序集引用?)    

可是程序沒有引用System.Net命名空間啊,查找

看到obj下有個文件XXX.GlobalUsings.g.cs

// <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;

怎麼刪除都不管用,人家說的好好的: auto-generated

好吧,怎麼把這個幹掉

還是項目的csproj裏面

<ImplicitUsings>disable</ImplicitUsings>

重新編譯,成功。

完整的csproj文件:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFrameworks>net6.0;net5.0;netstandard2.1;net472;net40</TargetFrameworks>
    <LangVersion>10.0</LangVersion>
    <ImplicitUsings>disable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <AllowUnsafeBlocks>True</AllowUnsafeBlocks>
    <PlatformTarget>x86</PlatformTarget>
  </PropertyGroup>

</Project>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章