(我遇到了同样的问题。经过多次尝试,我解决了它并找到了我的根本原因。我将我的尝试路径保留在这里,但如果你愿意,你可以跳到最后。)
我想指出的是,要非常小心 enden 的解决方案 2。其他一些程序可能会将安装包缓存在C:\ProgramData\Pacakges Cache 文件夹中。如果您从该文件夹中删除数据,您可能会危及其他程序的安装/卸载。
我在安装 VS2015 期间遇到了多次失败。在我从C:\ProgramData\Pacakges Cache 中删除所有内容后,我的VS2013 和VS2015 都卡在Programs and Features 窗口中,我无法change/repair/uninstall 它们。
要修复 change/repair/uninstall 失败,我必须转到以下 2 个注册表项:
首先:在你对它做任何事情之前备份你的注册表。
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall]
并删除所有 InstallLocation 指向 C:\ProgramData\Pacakges Cache 和 DispalyName 看起来与 Visual Studio 2013/2015 相关的键(这可能需要一些经验/直觉)。
然后,VS2013/2015 在 Program & Features 窗口中的卡顿项消失了。 现在我可以重新安装 VS2013了。
但我仍然无法使用安装程序安装 VS2015。错误依旧如下:
但至少我可以在 Prgram & Features 窗口中更改/修复/卸载 VS2015。所以我选择修复它。但是修复不起作用。我仍然遇到与上述相同的错误。
然后我卸载了失败的 VS2015 并尝试修复 VC++2015 redist,如 TimVdG 的标记答案中所述。然后用安装程序重新安装VS2015。
还是失败了。
然后我尝试了 Brian Swart 的解决方案来安装 VS2015 没有 Update 1。但 TeamExplorer 仍然失败。我检查了日志,发现:
MSI (s) (48:A0) [14:53:34:997]:Windows Installer 安装了
产品。产品名称:Microsoft Visual Studio 2015 团队资源管理器。
产品版本:14.0.23102。产品语言:1033。制造商:
微软公司。安装成功或错误状态:1603。
我在 Google 上搜索了一些关于 1603 error 的信息。现在我正在尝试将完全控制权添加到C:\Program Files (x86)\Microsoft Visual Studio 14.0 文件夹并重试。
还是不行。
一些参考:
https://www.online-tech-tips.com/computer-tips/remove-program-from-add-remove/
https://support.microsoft.com/en-us/help/247501/how-to-manually-remove-programs-from-the-add-remove-programs-list
https://superuser.com/questions/401511/how-to-remove-a-broken-program-from-the-programs-and-features-list-in-windows-7
=========> 最终解决方案
所以在我的场景中,它与 VC2015 可再发行组件无关。
我的根本原因是注册表中的 .NET 版本号不正确。
在 64 位 Windows 上,.NET 版本存储在注册表中的两个位置:
HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full\Version
HKEY_LOCAL_MACHINE\SOFTWARE**WOW6432Node**\Microsoft\NET Framework
设置\NDP\v4\完整\版本
以下是我的盒子里的东西:
注意Version 中的前导字符v?我不知道是谁把它放在那里的。但是一旦我删除它,我的VS2015 with Update 3就可以顺利安装了!
所以你可能想知道我怎么能找到这个。好吧,由于我无法安装VS2015,我转向VS2017。但是在安装 VS2017 成功后,我无法启动它。它是这样说的:
所以我决定检查已安装的 .NET 版本并看到上面的有趣差异。去掉前面的v后,就可以启动VS2017了。
但不管怎样,我还是不知道是谁把v放在那里的……真丢人!
最后但并非最不重要的一点:还请确保Release、Version 注册表项值一致,并且可以与您的 Windows 版本一起使用。参考下:
.NET and Windows version dependencies.
how to determine the installed .NET version.
Windows 10 version info
添加更多发现:
在我完成这个安装顺序后:VS2017 -> VS2015 -> VS2013,我注意到我的盒子上什至没有 VC++2015 redist:
因为 VC++ 2015 和 VC++2017 的 redist 都是 14.xxx。因此,拥有更高版本就足够了。当我尝试手动安装 VC++ 2015 redist 时,它说: