Nisy 发表于 2018-2-5 17:59:14

更新win10后,vs2017无法使用的原因



win10系统更新到build 16299.125后,由于vs2008和vs2013安装到了非系统盘D盘,导致无法使用。

vs2008直接无法打开,重新安装后方可使用。
vs2013可以打开,但是功能全部失效。



执行“获取工具或功能”直接报错。







于是找到该执行程序,在 C:\Program Files (x86)\Microsoft Visual Studio\Installer 目录,执行命令行
vs_installershell.exe update --installPath "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise"
打开的程序却是白板一张 ... 各种资料查询尝试,无果 ...

从微软官方下载 vs_Enterprise.exe, 双击直接退出 ...

分析:

更新后可能是注册表部分数据没有复制完整?这样就会比较麻烦了,因为我没有之前的注册版数据项无法比对。
丢失了环境变量?打开环境变量看了一下,确实是丢失了一项:
VS140COMNTOOLS
D:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools
添加之后仍旧无法使用

继续查找资料,打算找一个离线安装包试试,突然发现一篇文章:
vs2017离线安装并且安装包不占用C盘空间
http://blog.csdn.net/w763613202/article/details/69334954

文章介绍了如何节省C盘空间,而我当时就是创建了一个重定向的符号链接,赶紧打开看一下:



晕死,本来是指向D盘的,结果现在变成了“c:\vs2017sdk” ...

原来更新系统后,之前系统创建的符号链接新系统并没有正确的重新指向,导致工具 Over ...

修复回来:

C:\ProgramData\Microsoft\VisualStudio>mklink /D "C:\ProgramData\Microsoft\VisualStudio\Packages" "D:\Program Files (x86)\vs2017sdk"
为 C:\ProgramData\Microsoft\VisualStudio\Packages <<===>> D:\Program Files (x86)\vs2017sdk 创建的符号链接


一切功能都正常了 ...

飘云 发表于 2018-2-6 10:00:23

绿色精简版妥妥的~~

Nisy 发表于 2018-2-5 22:55:53



vs2008 无法运行是因为升级后,几乎所有的和VS9相关的注册表项目都被改成了C盘目录:

第一次读取失败:

2FF069E8   .68 19000200   push    20019
2FF069ED   .FF75 94       push    dword ptr
2FF069F0   .8D45 88       lea   eax, dword ptr
2FF069F3   .68 02000080   push    80000002
2FF069F8   .E8 34EEFFFF   call    2FF05831                         ;打开注册表
2FF069FD   .85C0          test    eax, eax
2FF069FF   .7C 6A         jl      short 2FF06A6B
2FF06A01   .8D45 8C       lea   eax, dword ptr
2FF06A04   .50            push    eax
2FF06A05   .BA 986AF02F   mov   edx, 2FF06A98                  ;UNICODE "DllName"
2FF06A0A   .8D75 88       lea   esi, dword ptr
2FF06A0D   .E8 54F0FFFF   call    2FF05A66
2FF06A12   .8D45 90       lea   eax, dword ptr
2FF06A15   .50            push    eax
2FF06A16   .BA A86AF02F   mov   edx, 2FF06AA8                  ;UNICODE "Path"
2FF06A1B   .E8 46F0FFFF   call    2FF05A66




2FF05852   .57            push    edi
2FF05853   .8D45 FC       lea   eax, dword ptr
2FF05856   .50            push    eax                              ; /pHandle
2FF05857   .FF75 10       push    dword ptr                ; |Access
2FF0585A   .6A 00         push    0                              ; |Reserved = 0
2FF0585C   .FF75 0C       push    dword ptr                 ; |Subkey
2FF0585F   .FF75 08       push    dword ptr                 ; |hKey
2FF05862   .FF15 0C10F02F call    dword ptr [<&ADVAPI32.RegOpenKey>; \RegOpenKeyExW

0053F410   80000002|hKey = HKEY_LOCAL_MACHINE
0053F414   0282BEFC|Subkey = "Software\Microsoft\VisualStudio\9.0\Packages\{715F10EB-9E99-11D2-BFC2-00C04F990235}\SatelliteDll"
0053F418   00000000|Reserved = 0
0053F41C   00020019|Access = KEY_READ
0053F420   0053F42C\pHandle = 0053F42C


Windows Registry Editor Version 5.00


"InprocServer32"="C:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\Common7\\IDE\\msenvmnu.dll"
@="Visual Studio Environment Menu Package"


"DllName"="msenvmui.dll"
"Path"="C:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\Common7\\IDE\\"


因为注册表有N处都被修改了,被改动太多了,只能重新安装 ... 当然我用了另一种取消的方法,直接把D盘下 “C:\\Program Files (x86)\\Microsoft Visual Studio 9.0” 所有文件复制到C盘一份 ...快捷方式也指向 C 盘 ...

Win10 的这次大版本升级做的好烂哦 ┭┮﹏┭┮

飞天 发表于 2018-2-6 08:48:27

谢谢N大分享经验。

hu007 发表于 2018-2-6 09:03:11

谢谢详细分析分享

xiaoyun801010 发表于 2018-2-6 09:07:49

好难得,老大也能遇到这样的问题。

dryzh 发表于 2018-2-6 10:49:41

感谢Nisy分享经验。BootCamp也分多个盘玩?

howardlee 发表于 2018-2-7 11:01:46

又学了一手,从来没用过mklink,dos时代没这个,居然再vista时代就有了,太方便了

believeme 发表于 2018-2-8 09:17:32

之前也也使用过mklink,就是因为楼主发现的问题以后就不使用了,一般把C盘都是200G

chakan 发表于 2018-2-8 21:20:08

经验之贴,值得学习了解!
页: [1] 2
查看完整版本: 更新win10后,vs2017无法使用的原因