使用GitHub Actions发布Blazor WebAssembly时遇SDK缺失错误求解决
解决Blazor WebAssembly部署到GitHub Pages时的SDK找不到错误
错误原因
Microsoft.NET.Sdk.BlazorWebAssembly 这个SDK是从.NET 5版本开始作为独立SDK发布的,而你在GitHub Action中配置的是.NET Core 3.1,两者版本不匹配,导致系统找不到指定的SDK。
可行解决办法
办法1:升级Action中的.NET SDK版本匹配项目
如果你的Blazor WebAssembly项目使用的是.NET 5/6/7/8(推荐选用长期支持的LTS版本如6.0或8.0),修改GitHub Action配置中的.NET SDK版本:
name: Deploy to GitHub Pages on: push: branches: [ main ] jobs: deploy-to-github-pages: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup .NET SDK uses: actions/setup-dotnet@v4 with: dotnet-version: 6.0.x # 替换为你项目实际使用的.NET版本,比如8.0.x - name: Publish .NET Core Project run: dotnet publish Learning_Blazor.csproj -c Release -o release --nologo - name: Deploy GitHub Pages site uses: actions/deploy-pages@v2 with: token: ${{ secrets.GITHUB_TOKEN }}
同时确认你的项目文件(Learning_Blazor.csproj)中的配置与SDK版本对应:
<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly"> <PropertyGroup> <TargetFramework>net6.0</TargetFramework> <!-- 与Action中配置的.NET版本保持一致 --> <!-- 其他项目配置 --> </PropertyGroup> </Project>
办法2:适配.NET 3.1(不推荐,已停止官方支持)
如果你坚持使用.NET 3.1,需要修改项目文件的SDK引用——因为.NET 3.1中Blazor WebAssembly并未独立出专属SDK,而是使用通用的Microsoft.NET.Sdk.Web:
修改Learning_Blazor.csproj开头部分:
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netstandard2.1</TargetFramework> <RazorLangVersion>3.0</RazorLangVersion> <!-- 其他项目配置 --> </PropertyGroup> </Project>
Action配置可以保留.NET 3.1的设置,但注意.NET 3.1已停止官方支持,后续可能遇到更多兼容性问题。
额外检查点
- 确认
dotnet publish命令中的项目路径正确,如果项目在子目录下,需要添加相对路径(比如dotnet publish ./src/Learning_Blazor.csproj) - 确保GitHub Action的权限配置正确,原配置中的
github.token应改为标准写法${{ secrets.GITHUB_TOKEN }}
内容的提问来源于stack exchange,提问作者Soumil30
相关产品推荐
相关产品推荐

