Github Action构建.NET应用遇Windows SDK版本缺失报错求助
解决GitHub Action构建.NET 4.6.1+React Native项目时的Windows SDK缺失错误
问题分析
报错明确指出找不到Windows SDK版本10.0.18362.0,核心原因:
windows-2019runner默认预装的Windows SDK版本不包含10.0.18362.0- 你使用的
setup-windows10-sdk-action未指定具体版本,默认安装的SDK与项目要求不匹配
解决方案
1. 安装指定版本的Windows SDK
修改setup-windows10-sdk-action步骤,明确指定安装10.0.18362.0版本:
- uses: GuillaumeFalourd/setup-windows10-sdk-action@v1.11 with: sdk-version: '10.0.18362.0'
2. 构建时强制指定SDK版本
在msbuild命令中添加/p:WindowsSDKVersion=10.0.18362.0参数,确保项目使用正确的SDK:
- name: Build Terminal run: msbuild .windows\project.sln /nologo -verbosity:minimal /p:Configuration=Release /p:Platform=x64 /p:AppxBundle=Never /bl /p:PackageCertificateKeyFile="SideloadingMaster.pfx" /p:RestorePackagesConfig=true /p:WindowsSDKVersion=10.0.18362.0 /t:restore,build
3. 优化.NET 4.6.1安装步骤(可选)
windows-2019 runner已预装.NET Framework 4.6.1,可移除choco安装步骤缩短构建时间:
# 移除以下两行冗余安装命令 # choco install dotnet4.6.1 # choco install dotnet4.6.1-devpack
修改后的完整GitHub Action代码
name: Build on: [push] jobs: build: name: "Build Terminal" env: POWERSHELL_TELEMETRY_OPTOUT: 1 DOTNET_CLI_TELEMETRY_OPTOUT: 1 UseEnv: true runs-on: windows-2019 steps: - uses: actions/checkout@v3 - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: '16.x' - name: Setup MSBuild uses: microsoft/setup-msbuild@v1.3 with: msbuild-architecture: x64 - uses: actions/cache@v3 with: path: ~/.nuget/packages key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }} restore-keys: | ${{ runner.os }}-nuget - name: Build key file env: CERT_FILE: ${{ secrets.CERT_FILE }} shell: bash run: | echo "$CERT_FILE" > sideloading.base64 certutil -decode sideloading.base64 SideloadingMaster.pfx - name: Install dependencies Node.js run: npm ci --legacy-peer-deps - uses: GuillaumeFalourd/setup-windows10-sdk-action@v1.11 with: sdk-version: '10.0.18362.0' - name: Build Terminal run: msbuild .windows\project.sln /nologo -verbosity:minimal /p:Configuration=Release /p:Platform=x64 /p:AppxBundle=Never /bl /p:PackageCertificateKeyFile="SideloadingMaster.pfx" /p:RestorePackagesConfig=true /p:WindowsSDKVersion=10.0.18362.0 /t:restore,build
关键说明
- 指定SDK版本是解决错误的核心,确保项目依赖的SDK被精准安装
- 构建时显式传入
WindowsSDKVersion参数,避免项目配置与环境不匹配 - 移除冗余安装步骤可提升构建效率,若项目有特殊依赖可保留原命令
内容的提问来源于stack exchange,提问作者MaddEye
相关产品推荐
相关产品推荐

