VS Code报CS1617错误:/langversion选项'7.3'无效及相关问题咨询
搞定Blazor在VS 2017和dotnet CLI里的运行问题
咱们先把事儿捋明白:你遇到的这两个问题十有八九是相关的,核心出在.NET Core SDK版本、C#语言版本兼容性,还有Blazor运行环境的配置不匹配上。
先解决CSC : error CS1617: Invalid option '7.3' for /langversion.编译报错
从你贴的dotnet --info输出能看到,你用的是.NET Core SDK 2.1.300-preview1-008174这个预览版,它默认支持的最高C#版本是7.2,但你的项目大概率配置了用C# 7.3,这就导致CLI编译直接炸了。
解决方法很简单:
- 打开你的项目文件(就是那个
.csproj文件),找一下有没有<LangVersion>这个配置项。如果它的值是7.3,把它改成7.2或者latest(让SDK自动选兼容的最高版本)就行:<PropertyGroup> <LangVersion>7.2</LangVersion> </PropertyGroup> - 要是没找到这个节点,直接把上面这段代码加到项目文件的
<PropertyGroup>块里就行。
再解决VS 2017里Blazor一直显示“Loading...”的问题
这个问题通常和Blazor的运行时依赖、浏览器兼容或者项目配置有关,结合前面的SDK版本问题,你可以按下面的步骤一步步排查:
- 先把SDK版本对齐:你用的是VS 2017 15.7,它对应的Blazor版本更适配正式版的.NET Core 2.1.2 SDK,但你现在装的是预览版的2.1.300-preview1。建议先卸载这个预览版SDK,装回正式版的.NET Core 2.1.2,避免版本不兼容搞事情。
- 清理重建项目:在VS里右键项目选“清理”,然后“生成”,再试试运行;用CLI的话就执行
dotnet clean,接着dotnet build,把旧的编译产物清干净。 - 看看浏览器控制台的报错:打开浏览器按F12调出开发者工具,切到控制台标签,看看有没有资源加载失败或者JS报错,这能帮你精准定位到底是啥东西没加载出来。
- 检查Blazor的启动脚本:打开项目里的
wwwroot/index.html,看看里面的Blazor脚本引用对不对,比如应该是:
确保这个路径没错,而且项目生成后,这个文件确实在输出目录里存在。<script src="_framework/blazor.webassembly.js"></script>
额外提个醒
如果你非要用预览版SDK,那得确保你的Blazor相关NuGet包也是适配这个预览SDK的版本,去NuGet更新一下对应的包就行。不过正式环境还是建议用稳定版的SDK和Blazor包,毕竟预览版多多少少会有兼容性坑。
内容的提问来源于stack exchange,提问作者Spydernaz
相关产品推荐
相关产品推荐

