如何编辑 Typescript 1.4 "specified task executable location"?

How to edit the Typescript 1.4 "specified task executable location"?

我正在更新项目以使用所有内容的最新版本。 我刚刚将 MVC 4 项目从 .Net 4.0 更新到 .Net 4.5.1。然后我更新了 nuget 包(卸载了一些,然后重新安装,因为它们基于 .Net 4.0)。之后,我将 Typescript 的机器版本更新为 1.4,这时一切都很顺利。只是两个简单的错误。第一个:

Your project file uses a different version of the TypeScript compiler and tools than is currently installed on this machine. No compiler was found at C:\Program Files (x86)\Microsoft SDKs\TypeScript.4.4\tsc.exe. You may be able to fix this problem by changing the element in your project file.

我确定它已设置为“1.4”

 <TypeScriptToolsVersion>1.4</TypeScriptToolsVersion>

第二个错误:

The specified task executable location "C:\Program Files (x86)\Microsoft SDKs\TypeScript.4.4\tsc.exe" is invalid.

所以我试图找到设置路径的位置,并取出试图在第二个文件夹“1.4”中查找的位置。路径应该是:

C:\Program Files (x86)\Microsoft SDKs\TypeScript.4\tsc.exe

我似乎找不到设置的位置以及如何更改它。

我试过:

正在重新安装和修复 Typescript 1.4 并到处搜索设置路径的位置。

我读过的答案包括检查 "Check your PATH environment variable." 我找不到在哪里更改它,此时我的大脑很生气。

我在 Visual Studio 2013 Ultimate。谢谢。

1.4

工具版本与编译器版本不同。对于 1.4,版本是 1.0(我认为)。

I can't seem to find where this is set, and how I can change it.

它在您的 Microsoft.TypeScript.targets 中设置(位置如:C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\TypeScript)。我的包含:

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

个人意见:我不使用 visual studio / msbuild,建议您投资于像 atom(免责声明:维护者)这样的 OSS 编辑器和像 grunt 或 gulp 这样的构建管道。

我遇到了同样的问题。我发现它的唯一方法是在 C:\Program Files (x86)\Microsoft SDKs\TypeScript.4 中创建一个新文件夹“1.4”,并将父目录中的所有文件复制到 'C:\Program Files (x86)\Microsoft SDKs\TypeScript.4**1.4**'。

愚蠢的解决方案,但对我有用。

我安装了1.5版然后卸载了。卸载 1.5 后,我开始收到与您收到的完全相同的错误。为了修复它,我不得不 运行 在 Visual Studio 安装的控制面板中进行修复。 运行 Visual Studio 上的修复将修复对 SDK 路径的引用。

我不知道这些步骤是否必要,但在 运行 修复之前我手动去了:

C:\Program Files (x86)\Microsoft SDKs

并重命名了 TypeScript 文件夹。

在 MSBuild 路径下,您可能会列出 Visual Studio 的多个版本。我进入了每一个并重命名了 TypeScript 文件夹。

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\

然后我 运行 从控制面板修复我安装的 Visual Studio。如果您不想 运行 修复完整安装并且您有原始安装媒体或 iso,您可以 运行 TypeScript SDK 和 VS 包来自:

H:\packages\TypeScript_SDK

H:\packages\TypeScript_VS

在 运行 单独修复或 运行 软件包后,您将安装旧版本的 TypeScript,现在可以进入 Visual Studio 并使用“扩展和更新”对话框来安装 TypeScript 1.4。

解决方案:

  1. 转到 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio 并重命名您的 VisualStudio 版本中的 typescript 文件夹。例如,我在 v12.0.

  2. 中重命名了 Typescript 文件夹
  3. 转到 C:\Program Files (x86)\Microsoft SDKs 并重命名 typescript 文件夹。

  4. 进入控制面板的程序和功能,搜索 Typescript 并修复 Typescript。

此解决方案将解决问题,现在您可以删除重命名的文件夹

编辑: 我遇到了比这更多的问题,发现我的项目需要 1.0 因此我不得不恢复到这个通过卸载 TypeScript,removing/renaming C:\Program Files\MSBuild\Microsoft\VisualStudio\v12.0\TypeScriptC:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TypeScript 然后 运行 installer/uninstaller.

中的修复选项

对我来说,我安装了 1.5 并且需要返回到 1.4。回到 1.4 后我需要修改

Microsoft.TypeScript.Targets

C:\Program Files\MSBuild\Microsoft\VisualStudio\v12.0\TypeScript\

从此

注释掉TypeScriptToolsVersion的追加
<PropertyGroup>
    <TypeScriptToolsVersion Condition="'$(TypeScriptToolsVersion)'==''">1.4</TypeScriptToolsVersion>
    <TscToolPath Condition="'$(TscToolPath)' == ''">$(MSBuildProgramFiles32)\Microsoft SDKs\TypeScript</TscToolPath>
    <!--<TscToolPath Condition="'$(TypeScriptToolsVersion)' != ''">$(TscToolPath)$(TypeScriptToolsVersion)</TscToolPath>-->
    <TscToolExe Condition="'$(TscToolExe)' == ''">tsc.exe</TscToolExe>
    <TscYieldDuringToolExecution Condition="'$(TscYieldDuringToolExecution)' == ''">true</TscYieldDuringToolExecution>
</PropertyGroup>

至此

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

这是 TypeScript 的一个错误,据称已修复。该错误复制了路径中的 TypeScript 版本。

参考: https://github.com/Microsoft/TypeScript/issues/3493

注意: 如果您尝试使用 Visual Studio Online 进行构建,现在会出现类似的问题。根据同一线程,VSO 团队意识到并正在修复...

我在 VS2013 中也遇到了这个错误:

The specified task executable location "C:\Program Files (x86)\Microsoft SDKs\TypeScript.4.4\tsc.exe" is invalid error.

这是对我有用的解决方案,来自 paulvanbrenk 的 this GitHub comment

我想我有一个应该进入 1.8 final 的修复..然而,与此同时。您能否检查 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\TypeScript 中的 Microsoft.TypeScript.targets 文件,看看是否有一个 TscToolPath 元素附加在 TypeScriptToolsVersion 之后。从该元素中删除 TypeScriptToolsVersion 应该可以解决问题。