【问题标题】:Use specific TypeScript compiler version in Visual Studio在 Visual Studio 中使用特定的 TypeScript 编译器版本
【发布时间】:2014-06-08 08:25:22
【问题描述】:

我想知道是否有办法在 Visual Studio 中为项目设置特定的 TypeScript 编译器版本。所以我可以将项目配置为始终使用 1.0 版,即使会发布新版本。

我知道it was not possible before,我想知道在 TypeScript 成熟到 1.0 版本后情况是否会发生变化。

我注意到现在 Visual Studio 在项目文件中创建 <TypeScriptToolsVersion>0.9</TypeScriptToolsVersion> 属性,但找不到任何有关它的文档。

【问题讨论】:

  • “在项目文件中”。能不能具体一点?
  • 它将在您的 .csproj 文件中。
  • 我发现我的一个项目使用的是旧版本的打字稿。将这些添加到我的 .nsproj 解决了这个问题: 1.81.8

标签: visual-studio typescript


【解决方案1】:

如果您尝试使用 TypeScript 1.0 版编译带有<TypeScriptToolsVersion>0.9</TypeScriptToolsVersion> 的项目,您将收到以下错误:

您的项目文件使用的 TypeScript 编译器和工具版本与当前安装在此机器上的版本不同。在 C:\Program Files (x86)\Microsoft SDKs\TypeScript\0.9\tsc.exe 中未找到编译器。您可以通过更改项目文件中的元素来解决此问题。

因此它会阻止您使用较新的版本进行编译。但是,它不会将编译器置于某种 0.9 兼容模式。

但如果您安装了 TypeScript 0.9,它将针对该版本进行编译。所以是的,您可以使用该属性强制使用特定版本的 TypeScript 编译器。

基本上<TypeScriptToolsVersion> 所做的是它改变了编译器的路径:

C:\Program Files (x86)\Microsoft SDKs\TypeScript\<TypeScriptToolsVersion>\tsc.exe

【讨论】:

  • 你们(你+提问者)说的这个秘密项目文件,是哪一个?我在任何地方都找不到这个条目。
  • @MartinAndersson web.config
  • @MartinAndersson 我指的是 msbuild 目标文件。如果您在 VS 中使用 C# 项目,则它是您的 *.csproj 文件。
  • 我安装了 TS1.6 和 1.4;我尝试将项目的 TypeScriptToolsVersion 更改为 1.4,但在“C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.4\1.4\tsc.exe”中搜索时遇到错误。解决方案在这里:github.com/Microsoft/TypeScript/issues/3493
【解决方案2】:

我已经通过在条件语句中的TypeScript\ 之后添加$(TypeScriptToolsVersion)\ 来解决它。

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets"
Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\$(TypeScriptToolsVersion)\Microsoft.TypeScript.targets')" />

【讨论】:

    【解决方案3】:

    Visual Studio 版本 -> VS2013

    1. 安装 Typescript 1.8 -> https://visualstudiogallery.msdn.microsoft.com/9d0e9172-244a-4943-94e5-bd24dffd9536
    2. 打开项目的文件夹位置,例如右键单击您的项目 > 在文件资源管理器中打开文件夹
    3. 通过文本编辑器查找并打开项目文件,例如WebApplication1.csproj
    4. 在“PropertyGroup”元素下找到“TypeScriptToolsVersion”标签并使用 1.8。像这样,
      <PropertyGroup>
      ......
        <IISExpressUseClassicPipelineMode />
        <TypeScriptToolsVersion>1.8</TypeScriptToolsVersion>
      </PropertyGroup>
    

    【讨论】:

      【解决方案4】:

      我们可以使用 csproj 文件中的以下行来排除 Visual Studio 中的类型脚本文件编译。

      <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked> 
      

      &lt;TypeScriptToolsVersion&gt;0.9&lt;/TypeScriptToolsVersion&gt; 这一行之后。

      【讨论】:

        猜你喜欢
        • 2014-02-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-08
        • 2016-09-12
        • 2020-06-06
        • 2022-12-21
        相关资源
        最近更新 更多