解决Visual Studio与内存盘的功能性冲突

作为16G内存用户,本人一般都将系统临时文件位置,通过TMP/TEMP环境变量设置到内存盘上。不过,升级到Visual Studio 2017后,发现VS 2017与这种做法有那么一点点冲突,具体表现为:

  • Visual Studio 2017会写几个比较大的文件到TMP/TEMP目录。一个模板比较多的C++工程,这几个文件加起来接近4G甚至超出,这不是16G内存用户所能承受的;当然可以狠狠心分8G内存盘,但那样系统原生的缓存就要受干扰了,得不偿失;
  • 这几个文件还是始终打开的,文件句柄不释放,其他软件就不好检测他们的大小——直接后果是Primo Ramdisk的动态分配机制失去了作用,经常出现可用空间为零了还不会自动增大的情况。临时文件写不进去时VS倒也不一定报错,但是IntelliSense肯定是没了。
  • 这几个名为edg****.tmp的文件,在VS里还没法设置位置,必定写入到TMP/TEMP目录,想单独挪出来都不行。

这么一搞,难道想用VS 2017就不能把TMP/TEMP目录设置到内存盘?那其他那些行为比较规矩的软件也享受不到内存盘的自动加速了。在这里提了个问题貌似也没人感兴趣

好在咱也是受过*nix熏陶的,想到根源出在环境变量不合适上,马上想到了为VS进程单独设置环境变量的方法:

  1. 在桌面上复制一个VS的快捷方式,以后都要用这个快捷方式来启动。喜欢桌面干净的,就去找开始菜单里面的VS快捷方式来操作。
  2. 右键属性,将快捷方式的“目标”更改为: C:\Windows\System32\cmd.exe /c SET TMP=C:\SWAP\VisualStudioTemporaryFiles&SET TEMP=C:\SWAP\VisualStudioTemporaryFiles&START C:\PROGRA~2\MICROS~2\2017\Community\Common7\IDE\devenv.exe 这相当于新建了一个CMD环境,把TMP/TEMP环境变量设置到你所需要的地方,再启动VS&用于连接多个命令,否则要连续执行多个命令就要用BAT文件了。 最后启动VS用了START命令,否则这条命令在VS关闭后才会结束——后果是一直有个黑窗口在那里。用了START,命令在VS启动之后就完成了,黑窗口一闪而过。连这都接受不了的自己去写VBS。 注意,START仅仅接收DOS风格的8-3路径,并且不能加双引号,否则只会打开一个cmd窗口。DOS格式的路径,可以用dir /x一层一层地获得。

最后,把新的快捷方式的图标路径指向原来的devenv.exe文件,恢复外观。

  • 最后更改: 2019/05/28 13:26