Visual Studio 2015 年不同 Typescript 版本的项目编译

Compilation of projects with different Typescript versions in Visual Studio 2015

VS2015-SP2。在一个解决方案中有两个打字稿项目,一个版本为 1.5,另一个版本为 1.7。解决方案将使用哪个编译器?

你可以实际测试一下。

我安装了 TypeScript 1.7 和 1.5 版。这意味着以下文件夹包含两个名为 1.5 和 1.7 的子文件夹:

C:\Program Files (x86)\Microsoft SDKs\TypeScript

我用两个项目创建了一个简单的解决方案。

其中一个项目的 TypeScript 版本为 1.5:

<TypeScriptToolsVersion>1.5</TypeScriptToolsVersion>

另一个有 TypeScript 1.7 版:

<TypeScriptToolsVersion>1.7</TypeScriptToolsVersion>

现在,如果您打开 VS2015 的开发人员命令提示符,导航到您的 sln 文件的文件夹并发出以下命令,您实际上可以看到将调用哪个编译器。

msbuild DifferentTypeScriptVersions.sln

我的输出包含这些有说服力的行:

PreComputeCompileTypeScript:
C:\Program Files (x86)\Microsoft SDKs\TypeScript.7\tsc.exe  --sourcemap --target ES5 --noEmitOnError COMPUTE_PATHS_ONLY "Z:\SomewhereOnMyDrive\DifferentTypeScriptVersions\TypeScriptProjectWithOnePointSeven\app.ts"
.......
PreComputeCompileTypeScript:
C:\Program Files (x86)\Microsoft SDKs\TypeScript.5\tsc.exe  --sourcemap --target ES5 --noEmitOnError COMPUTE_PATHS_ONLY "Z:\SomewhereOnMyDrive\DifferentTypeScriptVersions\TypeScriptProjectWithOnePointFive\app.ts"

如您所见,每个项目都调用了正确的版本。

最后一句话:我只安装了 1.7 就测试了同样的东西。当然,这两个项目都是用 1.7 编译的。

更新:如果你想确定VS使用相同的逻辑,你也可以这样做。

转到 Tools/Options/Projects 和 Solutions/Build 和 运行 并将 MSBuild 项目生成输出详细程度设置为正常。

现在,如果您重建解决方案,您将能够在“输出”窗格中看到有关正在调用哪个编译器的信息。我对其进行了测试,它对设置为 1.5 的项目使用 1.5,对设置为 1.7 的项目使用 1.7。