Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio NuGet TypeScript工具:为什么添加的TypeScript编译器版本仍然不可用?_Visual Studio_Typescript_Msbuild_Nuget_Visual Studio 2017 - Fatal编程技术网

Visual studio NuGet TypeScript工具:为什么添加的TypeScript编译器版本仍然不可用?

Visual studio NuGet TypeScript工具:为什么添加的TypeScript编译器版本仍然不可用?,visual-studio,typescript,msbuild,nuget,visual-studio-2017,Visual Studio,Typescript,Msbuild,Nuget,Visual Studio 2017,上下文 我使用的是VS2017.3。刚刚创建了一个ASP MVC项目,然后添加了两个nuget包 Microsoft.TypeScript.Compiler v2.5.3 Microsoft.TypeScript.MSBuild v2.5.3 当尝试配置typescript构建时,我看到typescript版本2.5不可用 问题 我错过了什么?我认为添加这些nuget包将使项目(和构建)独立于开发机器的安装状态 我到目前为止所做的尝试 卸载、重新加载项目 退出VS 重新启动VS构建项目

上下文

我使用的是VS2017.3。刚刚创建了一个ASP MVC项目,然后添加了两个nuget包

  • Microsoft.TypeScript.Compiler v2.5.3
  • Microsoft.TypeScript.MSBuild v2.5.3
当尝试配置typescript构建时,我看到typescript版本2.5不可用

问题

我错过了什么?我认为添加这些nuget包将使项目(和构建)独立于开发机器的安装状态

我到目前为止所做的尝试

  • 卸载、重新加载项目
  • 退出VS
  • 重新启动VS构建项目

为什么添加的typescript编译器版本仍然不可用

您需要从下载并安装typescripts SDK版本2.5.3,然后重新启动Visual Studio

Microsoft.TypeScript.MSBuild
的NuGet包用于提供类型脚本MSBuild任务,并匹配编译器版本

从Visual Studio 2017开始,我们可以安装多个TypeScript版本,并为您的每个项目选择特定版本。在安装
Microsoft.TypeScript.MSBuild
软件包后,您可以为您的项目选择特定版本,例如,我已在我的计算机上安装了多个版本的Typescripts SDK:

然后我将该软件包安装到我的ASP MVC项目中,版本为2.3,重新启动Visual Studio,重新打开项目,在Typescripts build选项卡上,您会注意到默认情况下选择了匹配的Typescript 2.3版本


当然,您可以手动选择Typescript的其他版本。

公认的答案是切中要害的,但进一步的解释可能会有所帮助

在Visual Studio 2017中,nuget软件包附带的typescript编译器仅由msbuild使用,但typescript语言服务依赖于要安装在计算机上的typescript SDK。引用github发行的一篇文章


尽管该问题被标注为Visual Studio 2017,但可能有兴趣在Visual Studio 2019中对其进行修订。从候选发行版的发行说明中:

非常感谢,它很有效。1) 我建议重新表述MSBuild任务的注释行,该行表示“…和匹配的编译器版本…”。实际上这个包根本没有依赖关系,所以没有“and”。2) 关于编译器包:我想不是只有我一个人认为,如果我安装了编译器包,那么我将安装一个编译器。实际上,我必须安装SDK才能有一个编译器。。。除了令人误解的名称之外,还有一个问题,那就是编译器包安装了什么?@g.pickardou,这只是一个包含typescript编译器的工具包。好了,TypeScriptTeam为那些希望以更简单的方式获得typescript编译器的人提供了这个包。换一种方式说……那么,如果我们仍然必须下载并安装SDK,那么为typescript提供NuGet包还有什么意义呢?