C# 7.3全局using指令不可用编译错误求助
解决C# 7.3项目中"global using directive"编译错误
问题详情
已将解决方案内所有项目的GenerateGlobalUsings设置为false,但编译时仍触发错误:
Feature 'global using directive' is not available in C# 7.3. Please use language version 10.0 or greater.
启动项目的完整配置如下:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>WinExe</OutputType> <TargetFramework>net48</TargetFramework> <LangVersion>7.3</LangVersion> <GenerateGlobalUsings>false</GenerateGlobalUsings> <UseWindowsForms>true</UseWindowsForms> <ImplicitUsings>enable</ImplicitUsings> </PropertyGroup> <ItemGroup> <PackageReference Include="MYOB.AccountRight.API.SDK" Version="2024.10.641" /> <PackageReference Include="System.Security.AccessControl" Version="6.0.1" /> </ItemGroup> <ItemGroup> <ProjectReference Include="..\SBD.MyobSync\DataModule\DataModule.csproj" /> <ProjectReference Include="..\SBD.MyobSync\SBD.MyobApi\MYOBAPI\SBD.Myob.csproj" /> </ItemGroup> <ItemGroup> <Reference Include="System.Configuration" /> </ItemGroup> <ItemGroup> <None Update="appsettings.config"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </None> <None Update="connections.config"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </None> </ItemGroup> </Project>
已尝试的操作:
- 清理并重建项目
- 删除bin、obj文件夹
- 重启Visual Studio 17.12.4
- 删除生成文件内容
当前环境:.NET Framework 4.8(默认语言版本为7.3)
解决方案
1. 禁用隐式全局引用
项目配置中ImplicitUsings设为enable时,即便关闭GenerateGlobalUsings,仍会自动生成隐式全局using指令。将其修改为disable:
<ImplicitUsings>disable</ImplicitUsings>
2. 排查NuGet包的代码兼容性
部分高版本NuGet包(如MYOB.AccountRight.API.SDK 2024.10.641或System.Security.AccessControl 6.0.1)可能包含使用C# 10+特性的代码,比如global using。可尝试:
- 查看NuGet包的内容,确认是否存在带
global using的.cs文件 - 降级NuGet包至兼容C# 7.3的版本
- 若必须使用当前版本,可在项目配置中强制覆盖语言版本(部分包可能不兼容,需测试)
3. 检查所有依赖项目的配置
确认解决方案内所有依赖项目的:
LangVersion是否统一设置为7.3ImplicitUsings是否已设为disableGenerateGlobalUsings是否为false
部分项目可能继承了解决方案级配置,需逐个检查.csproj文件。
4. 手动搜索并移除代码中的全局using
在整个解决方案中搜索global using关键字,找到手动添加的全局引用语句,替换为普通using指令或直接删除。
5. 确认Visual Studio默认语言版本设置
打开Visual Studio选项:工具 → 选项 → 项目和解决方案 → .NET Framework项目 → 常规,确认默认语言版本为7.3,避免配置继承时出现版本不一致。
内容的提问来源于stack exchange,提问作者Kirsten
相关产品推荐
相关产品推荐

