原因:没有卸载干净旧版本vs并且把C:/windows下的installer文件夹的内容删除了
vs installer在安装msi文件时是通过windows installer安装的,如果没有将原先关于旧版vs的组件完全卸载,安装到一些已有组件时windows installer会检测到已安装旧版本并通过C:/windows/installer下的元数据将原来旧版本的组件覆盖,如果找不到这些元数据便会报“无法删除 “”*******” 的旧版本”的错误。
没有installer文件夹会导致:Microsoft.VisualStudio.MinShell.Msi.Resources(error 1632)
无法覆盖会导致:error 1714\1612
在卸载旧版本vs时,如果手动删除vs文件夹或采用了一些硬盘清理工具都可能会导致这个错误
解决方案
方案一:
1.把https://gist.github.com/heaths/77fbe0b44496960fab25c2eb0b9e8475 的文件下载到本地
2.到C:\Windows\System32\WindowsPowerShell\v1.0以管理员权限打开powershell
3.cd到你文件存放的目录并在powershell内运行
4.去vs installer重新下载
(不过本人用这个方案并没有解决 0.0 )
方案二:
运行’C:\Program Files (x86)\Microsoft Visual Studio\Installer\resources\app\layout\InstallCleanup.exe -FULL’便可解决这个问题
(但我没找到这个文件= =)
方案三:
1.使用快捷键Win+R,输入regedit按回车打开注册表
2.删除注册表下的’HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products’
3.此时再下载应该不会报错了
(个人猜测windows installer是通过注册表 ’ \Installer\Products ‘ 下的选项检测安装的软件是否存在旧版本,在删除后就不会检测到存在旧版本并直接安装了)
教训
以后就算C盘再挤,打死我也不再删C:/windows下的东西了QAQ
参考微软开发者社区:https://developercommunity.visualstudio.com/t/visual-studio-installation-failed-with-msi-error-1-1/224422
如果方案一中的网址无法打开可以到我的博客里下载