使用Invoke-WebRequest下载Visual Studio 2017 Community时exe损坏
解决VS2017脚本下载后无法运行的问题
我之前也碰到过类似的VS安装包下载异常问题,给你几个实用的排查和解决方向:
检查文件完整性
脚本下载的文件很可能因为重定向处理不当或者分块传输中断导致不完整。你可以对比手动下载的文件和脚本下载文件的文件大小,如果数值不一致,说明脚本下载的文件是损坏的。建议在脚本里添加跟随重定向的参数:- 用
curl的话加上-L参数,同时可以用--content-disposition让工具自动获取服务器返回的正确文件名,避免手动命名可能带来的问题; - 用
wget的话加上--content-disposition --trust-server-names参数。
- 用
校验文件哈希值
微软官方会提供VS安装包的校验哈希,你可以对比手动下载文件和脚本下载文件的哈希值,确认文件是否损坏:- Windows系统可以用命令:
certutil -hashfile <你的VS安装包文件名> SHA256; - Linux/macOS系统可以用命令:
shasum -a 256 <你的VS安装包文件名>。
如果两个哈希值不一致,说明脚本下载的文件存在损坏,需要调整下载逻辑。
- Windows系统可以用命令:
核对请求参数与请求头
有些脚本可能添加了代理、缓存参数或者修改了请求头,导致服务器返回了适配其他系统的版本(比如x86和x64版本混淆)。你可以用浏览器开发者工具查看手动下载时的请求头信息,然后确保脚本里的请求头和手动请求完全一致,尤其是User-Agent、Accept这些字段。重新生成下载链接
旧的下载链接可能存在定向错误的情况,建议你到VS2017官方下载页面重新生成专属的下载链接,替换脚本里的原有链接后再尝试下载。
内容的提问来源于stack exchange,提问作者suroh
相关产品推荐
相关产品推荐

