多個框架時,可能會出現全局引用出錯
例如一個項目的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>