1. 主页 > vs安装问题 > VS2017安装问题 >

[VS2017][CUDA]更新visual studio 2017 v15.6.1之后遇到的问

今天不知道为什么手贱更新了一下VS2017,把版本号从14.1.1直接提到了15.6.1。

啊啊啊我珍贵的14.1.1版本啊,就这么没了==

紧接而来的是两个问题,一个是CUDA9.1跟不上VS2017的更新节奏,果不其然爆炸了;另一个是旧版本IE对VS2017-15.6.1兼容的问题。

--------------------------

先说VS2017-15.6.1跟旧版本IE的兼容问题。

首先我的IE比较旧,是IE9.0.8112,这个主要是为了在开发时测试页面、JS脚本跟旧版本IE的兼容及显示问题的。但是IE跟JS之间一直是比较“暧昧”的,MS一遍在推广自己的JS架构,一边在浏览器对象间跟谷歌各自搞一种套路。这些都是背景。

当我用VS2017进行调试时,弹出了这样一个框:


很明显这就是旧IE在解释JS脚本时,对对象解释时,文末","报错的问题。比如:

var a = {
    f : 120, // 这个,一加就会报错
};
解决问题当然是手动到\Common7\IDE\PrivateAssemblies\plugin.vs.js里一行一行改了。

不过这里还有更快的方法,那就是更新IE。当然备份这个文件之后,然后索性直接把这个文件删了也没有什么大的问题,一般情况下用不着它。


其次是会报错:对象没有addEventListener这个方法。

这个更简单,不用更新IE,直接打开相关文件,把这个方法更改为旧版本window对象中的attachEvent()即可。

--------------------------

接着说CUDA9.1的问题。CUDA追不上VS的更新速度已经是众所周知的了,此次更新之后又遇到了下面这个问题:

error -- unsupported Microsoft Visual Studio version! Only the versions 2012, 2013, 2015 and 2017 are supported!
按照往常的经验,强行把CUDA的预编译检测中对VS的版本限制改高就行了:

打开C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\include\crt\host_config.h,把第133行的:

#if _MSC_VER < 1600 || _MSC_VER > 1911

改为:

#if _MSC_VER < 1600 || _MSC_VER > 1920 // 只要版本号够高就行,随便挑个数字

但这次问题有点严峻。因为VS14.x和VS15.x在编译方面做出了修改,所以依旧会出现以下错误:


解决方法是打开 visual studio installer-修改-单个组件,把下面这个东西装上:(对的,就是去用老版本的VC++)


然后:项目-$项目名属性-把工具集换成2015的:


接着,点击:生成-重新生成。

本文由VS软件圈(vssoft.net)发布,不代表VS软件圈立场,转载联系作者并注明出处:https://vssoft.net/vsazwt/VS2017anzhuangwenti/2020/0724/3304.html

联系我们

在线咨询:点击这里给我发消息

微信号:PREEE8

工作日:9:30-18:30,节假日休息