我们团队中有一些人同时安装了Visual Studio 2015和Visual Studio 2017,而其他人只安装了最新的Visual Studio 2017(15.5)。对于后者,我们注意到IDE中的TypeScript项目由于各种lib.es2015.d.ts问题生成了各种意外错误。
我们的项目使用TypeScript 2.2,而最新的Visual Studio 2017(15.5)则带有TypeScript 2.5。
我们发现Visual Studio TypeScript SDK安装在以下路径:
C:\Program Files (x86)\Microsoft SDKs\TypeScript\2.2 C:\Program Files (x86)\Microsoft SDKs\TypeScript\2.5
我们注意到15.5版本在csproj属性屏幕中新增了一个属性,允许直接更改所需的TypeScript版本。由于项目需要2.2版本,而该版本未安装,因此下拉菜单显示缺少的2.2位。
我们尝试了以下方法来解决这个问题:
我们的项目使用TypeScript 2.2,而最新的Visual Studio 2017(15.5)则带有TypeScript 2.5。
我们发现Visual Studio TypeScript SDK安装在以下路径:
C:\Program Files (x86)\Microsoft SDKs\TypeScript\2.2 C:\Program Files (x86)\Microsoft SDKs\TypeScript\2.5
我们注意到15.5版本在csproj属性屏幕中新增了一个属性,允许直接更改所需的TypeScript版本。由于项目需要2.2版本,而该版本未安装,因此下拉菜单显示缺少的2.2位。
我们尝试了以下方法来解决这个问题:
- 安装了Visual Studio 2015的TypeScript 2.2 SDK(对于2017没有单独的安装)。不幸的是,这个包似乎没有语言服务
tsserver.js
。无法使用。Url: http://download.microsoft.com/download/6/D/8/6D8381B0-03C1-4BD2-AE65-30FF0A4C62DA/TS-2.2-dev14update3-20170221.2/TypeScript_Dev14Full.exe - 尝试使用NuGet包
Microsoft.TypeScript.Compiler
并安装2.2.1版(没有2.2.2版可用?)。这似乎没有解决任何问题。我们不清楚这个包如何真正地集成到某些东西中。即使添加了特定属性TypeScriptNuGetToolsVersion
。 - 尝试使用NuGet包
Microsoft.TypeScript.MSBuild
并安装版本2.2.2。不幸的是,这只影响了MSBuild过程而不是编辑器体验。对我们来说,MSBuild并不重要,因为我们正在使用Angular CLI来构建/监视TypeScript源代码。 - 复制了我们其中一个Visual Studio 2015安装的2.2位。这样就启用了csproj属性屏幕中的2.2菜单选项。但是,我们仍然会遇到与lib.es2015.d.ts的冲突。我们发现的是,SDK似乎总是使用最新版本,在我们的情况下是2.5。我们还安装了2.6,然后它开始使用2.6。
- 最终,我们只是完全删除了2.6文件夹,并创建了一个名为2.6的2.2文件夹副本。现在它可以正常工作了。但这真的感觉像是一个hack!
总结我们的问题:
- 在Visual Studio 2017(15.5)上安装TypeScript SDK 2.2的最佳方式是什么?
- 真正强制使用版本2.2中的lib.es2015.d.ts的最佳方法是什么?