如何使用winget安装特定版本的.NET Framework SDK?
如何使用winget安装特定版本的.NET Framework SDK?
我尝试安装版本为4.7.2和4.8的.NET Framework SDK,但遇到了以下问题:
- 无法通过winget搜索到对应版本的SDK包,执行
winget search "SDK"和winget search "DotNet"都没有找到目标版本的结果; - 尝试用指定ID和版本的命令安装(如
winget install --id Microsoft.WindowsSDK --version 4.7.2)也失败了,因为不存在对应的包ID; - 只有手动运行官方离线安装包(ndp472-devpack-enu.exe、ndp48-devpack-enu.exe)后,这些SDK才会出现在
winget list的结果中:
$ winget.exe list --name "Microsoft .NET" Name Id Version Source ------------------------------------------------------------------------------------------------------------ Microsoft .NET Framework 4.8 SDK {949C0535-171C-480F-9CF4-D25C9E60FE88} 4.8.03928 Microsoft .NET Framework 4.8 Targeting Pack {BAAF5851-0759-422D-A1E9-90061B597188} 4.8.03761 Microsoft .NET Framework 4.8 Targeting Pack (ENU) {A4EA9EE5-7CFF-4C5F-B159-B9B4E5D2BDE2} 4.8.03761 Microsoft .NET Framework 4.7.2 SDK {F42C96C1-746B-442A-B58C-9F0FD5F3AB8A} 4.7.03081 Microsoft .NET Framework 4.7.2 Targeting Pack {1784A8CD-F7FE-47E2-A87D-1F31E7242D0D} 4.7.03062 Microsoft .NET Framework 4.7.2 Targeting Pack (ENU) {B517DBD3-B542-4FC8-9957-FFB2C3E65D1D} 4.7.03062 Microsoft .NET SDK 6.0.402 (x64) Microsoft.DotNet.SDK.6 6.0.402 winget Microsoft Windows Desktop Runtime - 6.0.10 (x64) Microsoft.DotNet.DesktopRuntime.6 6.0.10 winget
希望实现安装过程的自动化,请问该如何操作?
解决方案
目前winget官方源中没有单独提供不同版本的.NET Framework SDK包,仅有的Microsoft.dotNetFramework包默认安装最新的.NET Framework(含SDK 4.8),无法指定旧版本。要自动化安装特定版本的SDK,可通过以下方式:
方式1:使用winget配合本地离线安装包
- 提前获取对应版本的官方离线安装包,可通过PowerShell下载:
# 下载.NET Framework 4.7.2 SDK Invoke-WebRequest -Uri "https://download.microsoft.com/download/6/F/5/6F5FF66C-6775-42B0-86C4-47D41F2DA187/ndp472-devpack-enu.exe" -OutFile "ndp472-devpack-enu.exe" # 下载.NET Framework 4.8 SDK Invoke-WebRequest -Uri "https://download.microsoft.com/download/7/1/A/71A551B6-6B52-47E3-9344-2F84960B80A8/ndp48-devpack-enu.exe" -OutFile "ndp48-devpack-enu.exe" - 使用winget调用本地安装包并执行静默安装:
- 安装4.7.2 SDK:
winget install --source local --path "ndp472-devpack-enu.exe" --installer-arguments "/quiet /norestart" - 安装4.8 SDK:
winget install --source local --path "ndp48-devpack-enu.exe" --installer-arguments "/quiet /norestart"
- 安装4.7.2 SDK:
方式2:直接执行离线安装包的静默命令
如果不需要通过winget管理安装记录,可直接调用安装包执行静默安装:
# 安装.NET Framework 4.7.2 SDK .\ndp472-devpack-enu.exe /quiet /norestart # 安装.NET Framework 4.8 SDK .\ndp48-devpack-enu.exe /quiet /norestart
内容的提问来源于stack exchange,提问作者not2qubit
相关产品推荐
相关产品推荐

