【问题标题】:Where is the TypeScript Tools version set in an ASP.NET 5 Project?ASP.NET 5 项目中的 TypeScript 工具版本设置在哪里?
【发布时间】:2020-06-04 20:32:38
【问题描述】:

我正在使用 默认 ASP.NET 5 Web 项目模板,并试图确定如何为我的应用程序指定 TypeScript 工具和最终的编译器版本。

没有还在使用Gulp,所以这篇帖子的answer 似乎站不住脚。原因是,即使没有 Gulp,我的应用程序也必须被告知要使用哪个 TypeScript 编译器。这个answer 也不是关于查找版本,而是使用尚不支持的功能。

在 VSNET 2013 中,TypeScript 工具版本和编译器目标在项目的属性中设置:

<TypeScriptToolsVersion>1.7</TypeScriptToolsVersion>

我相信它是我的tsconfig.json 文件的compilerOptions 部分的一个选项。但是我对version 没有智能感知,而且文档似乎很少。 link 声明它只是发出编译器的版本,但不允许指定它。

我目前在我的机器上安装了 1.6 和 1.7 版本。如果我需要指定特定的编译器版本,如何在 ASP.NET 5 Web 模板中进行设置?同样,答案不是立即使用 Gulp,因为它会像现在一样构建和编译我的 .ts 文件,所以有些东西决定了正在使用的编译器。

【问题讨论】:

  • 我不熟悉 Typescript 工具。用 Visual Studio 2015 中的内置 Typescript 无法使用它做什么?
  • 您能否通过明确说明“我对版本没有智能感知”的确切含义来改进这个问题。还有这句话“这个链接声明它只是发出编译器的版本,但不允许指定它。” - 我不明白。 什么 你想说的是什么东西会发出编译器版本? OP中的这个问题也没有任何意义。 “您将如何在 ASP.NET 5 Web 模板中设置特定的编译器版本” - 您不会,这是您不会“在模板中设置”的配置设置。
  • @ChrisHalcrow 这个问题已有 2 年历史,有 7k 浏览量,5 人赞成的答案,您想要澄清吗?今天它也已经过时了,因为 ASP.NET 5 不存在,因为它变成了 ASP.NET Core、VS2105 的旧版本和 TS。由于我们没有过时关于 SO 的问题,因此它是及时的快照。对于它的价值,XML 文件中的 TS 版本没有智能感知。链接中的--version 开关发出了编译器版本。最后在 ASP.NET 5(当时)中,答案显示了 MSBuild 如何使用这些值来确定 TS 版本。这个问题的大部分内容已经过时了。
  • @atconway 我要求澄清问题的原因是很难找到有关 VS 如何确定要使用的工具版本的信息,尽管 OP 与 .NET 5 相关,但它具有问题中的一些有用信息,如果得到澄清,仍然可以帮助我们理解其工作方式:) 如果您确实想在问题中澄清,我们可以删除这些 cmets,因为它们使问题的建设性降低。
  • 感谢艾伦,我已经阅读了您的文章,它对我的​​帮助很多!我也看过 VS 2017 的文章,但是我使用的是 2015

标签: typescript visual-studio-2015 asp.net-core


【解决方案1】:

似乎 ASP.NET 5 项目的 TypeScript 工具(和相应的编译器版本)设置在以下文件中:

TS 1.7: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\TypeScript\Microsoft.TypeScript.targets

<PropertyGroup>
    <TypeScriptToolsVersion Condition="'$(TypeScriptToolsVersion)'==''">1.7</TypeScriptToolsVersion>
    <TscToolPath Condition="'$(TscToolPath)' == ''">$(MSBuildProgramFiles32)\Microsoft SDKs\TypeScript</TscToolPath>
    <TscToolExe Condition="'$(TscToolExe)' == ''">tsc.exe</TscToolExe>
    <TscYieldDuringToolExecution Condition="'$(TscYieldDuringToolExecution)' == ''">true</TscYieldDuringToolExecution>
</PropertyGroup>

TS 1.8 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\TypeScript

<PropertyGroup>
    <TypeScriptToolsVersion Condition="'$(TypeScriptToolsVersion)'==''">1.8</TypeScriptToolsVersion>
    <!-- Check the default folder for the nuget version of the installer first, if that exists we should use that. -->
    <TscToolPath Condition="'$(TscToolPath)' == '' AND Exists('$(MSBuildThisFileDirectory)tsc\tsc.exe') ">$(MSBuildThisFileDirectory)tsc\</TscToolPath>
    <TscToolPath Condition="'$(TscToolPath)' == ''">$(MSBuildProgramFiles32)\Microsoft SDKs\TypeScript</TscToolPath>
    <TscToolExe Condition="'$(TscToolExe)' == ''">tsc.exe</TscToolExe>
    <TscYieldDuringToolExecution Condition="'$(TscYieldDuringToolExecution)' == ''">true</TscYieldDuringToolExecution>
</PropertyGroup>

请注意,上面配置中的第一行对于 TypeScript 1.7 编译器的值为 1.7

【讨论】:

  • 安装最新版本也有帮助:)
【解决方案2】:

Visual Studio 2015 IDE 将使用 PATH 中指定的 TypeScript。如果您可以将其从 TypeScript 1.7 更改为 1.8,它将可以与 ASP.NET 5 应用程序和其他应用程序一起使用。

不需要使用 GULP,我希望你使用 VS IDE 或其 VS Code

这种方法将强制所有其他应用程序仅使用 TypeScript 1.8,但非 ASP.NET 5 应用程序在 proj 文件中有条目。

【讨论】:

  • 是的,我熟悉 TypeScript 的 PATH 变量中的内容。有什么简单的方法可以证明这有效吗? (即,在构建目标 TS 编译器路径期间根据对 PATH 变量的修改等看到一些输出?)
  • 它适用于 Angular 2 Beta 版本,因为我第一次安装 VS 2015 时使用的是 TS 1.5。
  • 在 Windows 8 和更早版本的 TS 中使用了路径变量(请参阅我的博客文章:allenconway.net/2015/07/which-version-of-typescript-is.html)但是,我检查并在 TS 1.8 的 Windows 10 上没有在 PATH 中定义值TS 编译器的变量。你确定你的答案吗?
  • 不幸的是,VS 使用的 PATH 和编译器版本没有直接的依赖关系。在我的情况下,PATH 包含 1.0 版本,VS 使用 1.8 版本,我需要 2.1。所以,我的调查正在进行中
  • 这不是答案。它也充满了无关信息。您只需在 VS 中禁用 TypeScript 编译就可以了。客户端不是服务器端。这和 gulp 关系不大,我和 vs code 一点关系都没有
【解决方案3】:

如果您在 Visual Studio 中有警告:

警告您的项目未指定 TypeScriptToolsVersion。这 将使用最新可用的 TypeScript 编译器 (x.y)。去除 此警告,将 TypeScriptToolsVersion 设置为特定版本或 “最新”总是选择最新的编译器。

您可以在项目属性中编辑TypeScript Tools Version。如果您将TypeScript version 的值设置为“未指定”,则会收到此警告。将其设置为“使用最新可用的”,警告就会消失。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-18
    • 1970-01-01
    • 2020-02-27
    • 2022-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多