8

Typescript v1.3今天发布了,所以我安装了VS2013 的电动工具更新

安装后,我可以看到 Visual Studio 现在知道“受保护”关键字和元组类型,这太棒了!

但后来我将 *.csproj 文件中的 TypeScriptToolsVersion 属性从 1.1 更改为 1.3:

<TypeScriptToolsVersion>1.3</TypeScriptToolsVersion>

执行此操作后,我在构建时收到以下错误:

指定的任务可执行位置“C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.3\tsc.exe”无效。

安装程序尚未创建文件夹“1.3”。

作为一种解决方法,我只需制作 1.1 编译器的副本即可使其工作。

有谁知道为什么 1.3 文件夹未包含在此版本中?

注意:使用 VS Professional 2013(12.0.30723.00 更新 3)

4

3 回答 3

7

当前的 1.3 版本安装到 1.1 文件夹中,新项目也会将项目文件中的 <TypeScriptToolsVersion> 属性设置为“1.1”(因为该元素的值是我们附加到“C:\Program Files (x86) \Microsoft SDKs\TypeScript”来查找编译器,因此需要同步)。

对于编译器,我们可以同时拥有多个版本(如 1.0 和 1.1 文件夹所示),因此将使用与项目中的 TypeScriptToolsVersion 设置对应的编译器版本来构建项目。我们不会自动将目标版本向前推进(为了使项目能够与不像你们一样前沿的大学进行往返;-)

但是,对于 Visual Studio 中的语言服务,只能存在一个版本,即安装的最新版本。由于我们的目标是保持向后兼容性,因此这不应该影响打开旧项目版本时的体验(除了更允许使用旧编译器在编译时会失败的新功能)。

当您打开具有较早版本的项目时,我们会发出警告,指出该项目版本与语言服务不同步,并且可能会发生这种情况(例如“您的项目文件使用的 TypeScript 编译器和工具的旧版本超出了此版本的支持Visual Studio 版本。您的项目可能正在使用 TypeScript 语言功能,使用此版本的 TypeScript 工具进行编译时会导致错误")。这是一个无害的警告,您可以继续编辑项目。如果您确实通过指定的编译器版本不支持的语言服务添加新功能,则会在构建时发生错误(根据警告)。

这并不理想,我们正在讨论如何才能做得更好。很抱歉有任何混淆。

于 2014-11-13T17:51:15.243 回答
3

当我在 tsUnit 项目上升级到 TypeScript 1.3 时,变更集显示工具版本从:

<TypeScriptToolsVersion>1.0</TypeScriptToolsVersion>

<TypeScriptToolsVersion>1.1</TypeScriptToolsVersion>

所以“工具版本”与语言版本不匹配。

  • TypeScript 1.1 -> 工具版本 1.0
  • TypeScript 1.3 -> 工具版本 1.1

值得注意的是,语言、编译器和工具可能都有不同的版本。运行tsc -v查看语言版本,如果您有最新版本(截至 2014 年 11 月),则为版本 1.3.0.0。

于 2014-11-13T08:37:06.233 回答
2

有谁知道为什么 1.3 文件夹未包含在此版本中?

此评论澄清它:https ://github.com/Microsoft/TypeScript/issues/1138#issuecomment-62993605引用:

您应该拥有带有 1.1 工具版本的 1.3 语言服务,并且 1.1 文件夹应该包含 1.3 编译器。我意识到这很令人困惑

于 2014-11-13T00:38:55.917 回答