IDE/记录VS2015&WinSDK安装过程中增删的系统组件和环境变量

文章目录

  • 概述
  • 看看"干净OS环境"
  • 安装VS软件后
    • 系统目录变化
    • 环境变量变化
    • 新增的组件程序
  • Qt及其VS插件安装后
  • 安装WinSDK后
    • 安装Win10SDK前
    • 安装WinSDK后
  • 卸载VS2015
  • 其他软件的影响

概述

本文旨在,通过记录干净OS环境下 VS2015、Qt、WinSDK 软件安装前后,对系统环境变量、系统目录、系统安装程序和组件列表等带来了哪些变化,结合曾经在 “不干净的OS下” 安装或使用VS时的失败经验,分析在 “不干净的OS” 下,VS2015安装或使用异常的原因。主要围绕着VS2015或WinSDK的安装和卸载前后,在操作系统下增加和删除了哪些组件、如何修改了环境变量等问题展开。

近半年撞上两次 VS2015安装问题,耗费了不少时间。不很清晰地推测了这些奇怪问题背后的原因:其中一次可能是,PC安装过VS2019,卸载后再尝试安装 VS2015 ;另一次可能是,新入职用了一台别人的电脑,此电脑可能装载过VS或微软的其他产品,后来又卸载过,导致系统注册表、环境变量、系统目录等不是那么干净。
一切似乎都指向 “安装软件的OS环境” 被污染啦,而又 “很难” 清理干净。前几日干脆重装了系统,本文观察记录了下安装VS相关产品前后,关于系统目录、环境变量、控制面板程序列表等方面的变化,以便再出现开发环境安装问题时能有个参考。

看看"干净OS环境"

2022年6月9号,重装了操作系统,系统版本Win10-1909,非系统盘格式化。

重装使用的操作系统版本 重装后控制面板/程序和功能列表
IDE/记录VS2015&WinSDK安装过程中增删的系统组件和环境变量_第1张图片 IDE/记录VS2015&WinSDK安装过程中增删的系统组件和环境变量_第2张图片

如上,在VS安装前,OS已经安装了大量的微软组件,它们大多应该是不同VS版本的运行时库。我们插进来看看安装VS后,使用相同按名称排序时,系统内的相关组件安装情况:
IDE/记录VS2015&WinSDK安装过程中增删的系统组件和环境变量_第3张图片

系统新重装后,初始的系统环境变量(PATH):
请添加图片描述

系统重装后,初始的系统盘目录情况(Windows开头的):
IDE/记录VS2015&WinSDK安装过程中增删的系统组件和环境变量_第4张图片
重点关注,在此"纯净的"OS环境下,上述 Program Files (x86) 及 Program Files 目录下并没有 windows Kits 目录。

安装VS软件后

本节不具体关注VS安装方法。主要是观察在纯OS下的安装VS后,环境变量、系统目录等情况的变化,以对比先前或未来遇到的相关异常,为其提供有力的分析依据。本次安装后提示:
IDE/记录VS2015&WinSDK安装过程中增删的系统组件和环境变量_第5张图片
上图是在纯净OS环境下安装的结果,安装过程中并未出现其他的告警或异常。在非纯净(安装过VS或微软的其他产品,后又卸载过)环境下,(相同的安装包) 安装过程中还出现了其他的告警,如找不到JavaScript_LanguageService.msi等(该现象表明,问题在很大的程度可能是待安装环境导致的,而不是安装包本身导致的)。

上图中提示 Microsoft Visual C++ 2015 Redistributable (x64/x86)已安装这个产品的另一个版本;结合下图中的 Microsoft Visual C++ 2015-2019 Redistributable (x64/x86)(是在OS安装后,VS安装前就有了);那么此现象就不足为奇啦。
已安装这个产品的另一个版本”,是常见现象,尤其是在高版本的OS下,安装相对低版本的VS软件时。另外,OS的Update过程,也会持续更新相关产品的版本,如:
在这里插入图片描述
可以看到上述选中行,20号这天,系统更新自动的给我安装了一个 Microsoft Visual C++ 2013 Redistributable(x86) - 12.0.21005,但是这个东西我其实在6月10日这天,装VS软件的时候就有了,而且版本、大小完全一致。

Redistributable 含义为 “可再发行的”。控制面板-卸载或更改程序窗口中,所有的 Redistributable*相关的产品,它们应该是些运行时组件,是在未安装 Visual Studio xxxx 的计算机上运行使用 Visual Studio 开发的应用程序所必需的(这些组件是可以单独下载package进行安装的-当然现在安装OS时基本都带全了)。

系统目录变化

IDE/记录VS2015&WinSDK安装过程中增删的系统组件和环境变量_第6张图片
上图是按照安装时间排序了 Program Files (x86) 下的目录,上图中的全部目录,均是在VS安装后新增加出来的目录(不排除有极少文件夹只是修改,不是新增,当时没有仔细留意)。上图,与IDE密切相关的文件夹应该是:Windows Kits 和 Microsoft SDKs目录。Here,我们重点关注目录 C:\Program Files (x86)\Windows Kits,发现其下已经包含了 8.1/10/NETFXSDK目录,其中:
Windows Kits\8.1\Lib\winv6.3 仅包含一个um文件夹,查看其x64目录为例,其中包含齐全的lib系列文件(也即是可以用以开发的)。
Windows Kits\10\Lib\10.0.10150.0 仅包含一个ucrt目录,查看其x64目录为例,其中仅包含ucrt.lib*系列文件(不可以用以开发调试的)。

环境变量变化

请添加图片描述
安装VS后的环境变量,相比安装前的环境变量,在PATH设置上多出来C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit; C:\Program Files\Microsoft SQL Server\120\Tools\Binn;两个路径。

新增的组件程序

IDE/记录VS2015&WinSDK安装过程中增删的系统组件和环境变量_第7张图片
如上图,是按照安装时间的筛选结果,它们全是VS安装完成后新增加的程序组件。好多啊,是不是!

Qt及其VS插件安装后

安装Qt软件、VS的Qt插件的安装等请参见 《IDE/在VS2015中集成Qt开发环境》。

Qt软件无外置环境变量
Qt软件安装完成后,PATH环境变量并未发生任何变化。在qmake等运行时,其会设置临时环境变量,请参考其他文章。

本次先安装了VS2015,又安装了Qt5.12,在安装了VS的Qt插件,没有进行过任何的其他配置操作,直接新建Qt Widget 项目,可以编译成功并运行。我们再倒回重装OS前,那时是在 "不干净"的OS下,先装了Qt,再装的 VS 和 Qt 插件,当时新建项目后,直接无法通过编译,不但找不到Qt的lib库,修正后,继续提示找不到 shell32.lib 等问题(当时我安装了Win10的SDK后,此问题才消失。现在回想起来,怀疑原因可能是环境变量中配置了Win10的SDK路径,但是系统盘下却根本没有这个SDK的东西)。

安装WinSDK后

好久以前用到SDK包是为了在QtCreator下能使用CDB调试。近期再次安装WinSDK包,是在VS中编译Qt最简单的项目都提示缺失shell32.lib等连接库(结合当前的实际问题,我安装了win10的SDK后,问题还真解决了)。在重装Win10系统,新装VS2015,新装Qt5.12,新装VSQt插件等一系列过程后,并没有再遇到类似问题。
但是我这里还是选择要安装下SDK,不为别的,就是看看它会给系统环境变量、系统盘目录,VS的相关配置项等带来什么变化,以便今后能识别出这种情况导致的IDE异常。最主要的,我就是想看看,在我安装Win10的SDK包后,系统环境变量的PATH中,C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit 路径会不会自动的被修改成 C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit ?

回想之前,若环境变量设置的是C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit,但实际上系统盘中压根就没有此目录(可能以前有,但是被卸载或删除了),能不带来问题吗?

安装Win10SDK前

注意环境变量下的路径,如下截图中8.1目录下,是VS2015原配的SDK开发库版本。至于目录10下压根没有 Windows Performance Toolkit 目录,我猜此目录仅仅是VS2015为了配合Win10操作系统而生成的一个运行时库,上文中也证实了,在该目录下的确不存在任何的WinSDK开发库文件。分别大略看下其目录结构:
IDE/记录VS2015&WinSDK安装过程中增删的系统组件和环境变量_第8张图片

IDE/记录VS2015&WinSDK安装过程中增删的系统组件和环境变量_第9张图片

安装WinSDK后

本小节内容是在编写 <> “安装WinSDK-CDB” 小节时实践总结出来的。本小节的前提是,为QtCreator安装CDB调试器,在安装(多个)WinSDK包时,一开始均仅选择了 Debugging Tools for Windows 安装项,此时并没有在VS具体项目属性 -> 常规 -> 目标平台版本选择项中,发现新装的WinSDK…

其原因可能是没有识别到?是我安装的SDK版本太高?
为了做进一步验证,我又下载并安装了14393版本的SDK(在官网下载页面,它已经没有iso版本,其中的"安装模拟器"是指支持移动设备体验开发和 UX 测试的仿真器版本,这里我们选择点击"安装SDK",下载下一个sdksetup.exe文件,1.12M大小)…
双击运行它后,初始弹出的安装界面与iso版一致,安装过程也与iso版本一致,没有再提示我进行在线下载什么的。安装完成后,也没有想象中的那样,能在everything中再收到新增4个cdb.exe文件。只是,在搜索14393时,可以在如下路径C:\Program Files (x86)\Windows Kits\10\Licenses 找到10.0.14393.0 和 10.0.19041.0 目录)…
为了保证可靠性,我还重启了电脑,新建了VS2015项目,再去查看项目属性,依然没有看到多出来的平台选择项和调试器选择项…

难道是安装路径或系统环境变量的问题? 先看看环境变量:
在环境变量里查看到如下相关路径
C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit
在C:\Program Files (x86)\Windows Kits\10 文件夹下,确实没有Windows Performance Toolkit
为此我们将尝试安装 Debugging Tools for Windows 外的组件
我们在返回到WinSDK的安装界面(之前我们仅选择了Debugging Tools For Windows 一个选项)…
IDE/记录VS2015&WinSDK安装过程中增删的系统组件和环境变量_第10张图片
(重新安装某个版本的WinSDK前要先去控制面板里卸载之前的安装)我们也看到了一个与环境变量中提及的 Windows Performance Toolkit 重名的安装项,这次除了 Debugging Tools For Windows 我们也勾选上Windows Performance Toolkit 安装项,重新安装…
IDE/记录VS2015&WinSDK安装过程中增删的系统组件和环境变量_第11张图片
上述安装过程可能包含部分在线下载过程,这个我不确定,毕竟安装包才1.12M,这两个安装项总共好几百M大小,但是,我的手机热点流量显示只消耗了40M左右…
Windows Performance Toolkit 组件安装完成后
环境变量中多出来C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\ 配置,原先的C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\ 配置依然存在…
打开VS2015的目标平台选择,依然只有8.1一个选项…
不服了…
再次卸载14393,然后重新安装,这次把Windows SoftWare Development kit 安装项也一并选择上(大小在1.7G左右)…
果然,皇天不负有心人…
IDE/记录VS2015&WinSDK安装过程中增删的系统组件和环境变量_第12张图片
选择安装Windows SoftWare Development kit 项目后,VS目标平台版本的选择项中终于有了想看到的新选项。

注意,通过VS2015的开发工具(包括调试器、编译器等)去调用Win10的SDK开发包,是否合适?难道不是VS2015原配的8.1版本,不是更加合适吗?而且作为程序的发布者,能使用低版本便不去追寻更高版本,应该是明智的。

卸载VS2015

在准确安装VS2017的时候,我执行了对VS2015的卸载。卸载前,我对系统内发布者是MicroSoft 的所有程序和组件列表进行了快照,通过对比卸载后的列表,可以发现只有红色框标记的部分被移除了。而VS2015安装时,增加的那两个环境变量依然存在,并没有被移除,这可能是出于对系统的保护吧,因为VS并不确定这个路径只有它自己在用。
IDE/记录VS2015&WinSDK安装过程中增删的系统组件和环境变量_第13张图片
仅做记录,不做细致追究。

其他软件的影响

由于之前见过有人说,Visio的安装和卸载,可能对VS的开发环境造成一定的影响,如果visio的卸载可能会意外的干掉一些开发依赖的库。因此本次安装visio的时候,特别关注了下。安装完成后,控制面板程序和功能中只是增加了 Microsoft Visio Professional 2013这一个程序,并没有其他增加;系统环境变量PATH无变化。可以肯定的是,visio是依赖.NET框架,和VS的运行库的,因为它与其他office软件一样,都是微软的产品,都是可以支持编程的。
另外,之前不止一次的遇到过,在Visio软件开启状态下,QtCreator软件使用异常的情况。具体原因并未搞清楚。

你可能感兴趣的:(IDE集成开发环境,VS集成Qt开发,ide,visualstudio)