.NET Framework 4.7.2 WebForms项目using static报CS8026错误求解
C# Web应用
using static语法编译报错问题 问题背景
将旧版VB.Net应用迁移至C#过程中,大部分转换工作已完成,但出现异常报错:仅Web应用的部分文件无法使用using static语法,该语法在解决方案其余项目中均可正常运行。
- 问题表现不稳定:有时整个解决方案可无错完成生成,直到运行阶段才触发异常;有时生成阶段直接报错,经确认属于Visual Studio 2015版本遗留的已知Bug。
- 具体报错信息:
CS8026 Feature 'using static' is not available in C# 5. Please use language version 6 or greater.
已知.NET Framework 4.7.2默认支持C# 7.3,因此判定该报错不属于框架版本兼容问题,需要可行的规避方案、补丁或临时解决方法,实现强制Web项目使用C# 7.3版本编译。
已尝试的解决方案
- 在项目生成的高级设置中修改C#语言版本:对应选项为灰色不可选状态,提示“根据框架版本自动选择”,无法手动调整
- 编辑
.csproj项目文件指定语言版本:该方案对解决方案内其他出现相同报错的项目均生效,唯独WebForms项目无效 - 常规故障排查操作:清理并重新生成解决方案、重启Visual Studio、重启计算机,均未解决问题
目前解决方案内所有项目均统一使用.NET Framework 4.7.2版本。
问题复现代码
触发报错的代码段如下,完全相同的using static语句在解决方案内另外3个控制台应用、1个Web API应用中均可正常编译运行:
using System; using System.ComponentModel; using System.Configuration; using System.Data; using System.Data.SqlClient; using static AppCore.Core.Xutilities; // 仅Web应用中该行触发报错
最新进展
目前已确认该问题确实属于Visual Studio的已知Bug,已检索到对应问题反馈记录,有用户在反馈中提出了修复方案,但描述过于模糊,正在自行试验验证方案有效性。
内容的提问来源于stack exchange,提问作者MC9000
相关产品推荐
相关产品推荐

