如何确保Visual Studio在构建期间使用哪种TypeScript编译器?

g.p*_*dou 7 msbuild visual-studio nuget typescript

上下文

最近,TypeScript编译器(1.8.x)也可以作为Nuget Package使用.然而这里有一个有点混乱的事实,有两个包

  • a)Microsoft.TypeScript.Compiler(无依赖关系)
  • b)Microsoft.TypeScript.MSBuild(**没有依赖,但包含TypeScript.Compiler ...顺便说一句:为什么?)

在我的项目(.csproj)中,TypeScript版本最初设置为1.7

<TypeScriptToolsVersion>1.7</TypeScriptToolsVersion>
Run Code Online (Sandbox Code Playgroud)

我想知道安装a)或b)后会发生什么

问题/问题

我不知道如何诊断Visual Studio 2015构建期间关于TypeScript编译的确切情况的简单方法.

  • 我不知道如何看到tsc.exe的任何输出(如版本号,路径等)
  • 我不知道如何查看任何结果(有效)设置,MSBuild任务将从哪个路径启动tsc.exe

Diganostic结果(可选阅读,如果有人有兴趣)

由于我缺乏知识,我不得不使用Mark Russinovich的ProcessMonitor来确保发生了什么.这是一个问题:如何做到这一点更简单?

  • 安装a)除了将tsc的工作实例复制到项目的/ packages文件夹之外什么都不做.没有触及.csproj文件.因此,最初配置的MSBuild任务将应用于.ts文件,并且原始安装的tsc 1.7正在从Program Files运行

  • 卸载a)正确"恢复"原始状态.(嗯,这只是从/ packages文件夹中删除包

  • 安装b)a)相同+更改.csproj中的MSBuild任务条目.因此,新的tsc 1.8将从/ package文件夹运行.

  • 卸载b)从.csproj文件中删除所有,包括所有与TypeScript相关的MSBuild任务.这是静默禁用所有ts文件编译(没有警告和错误).恢复默认行为的简单方法是向项目添加一个虚拟.ts文件,该文件将默认的 MSBuild任务插回到.csproj文件中.

安装被触及设置:

<TypeScriptToolsVersion>1.7</TypeScriptToolsVersion> 
Run Code Online (Sandbox Code Playgroud)

回到问题

有没有比使用ProcessMonitor更简单的方法来查看VS 2015构建过程中TypeScript的确切情况?

Ale*_*les 1

这可能有点晚了,但如果您使用msbuild /verbosity:Detailed 或 msbuild /v:Detailed运行msbuild,它将为您提供有关打字稿编译器发生情况的更详细信息。

只需在构建输出中搜索 tsc.exe,您将看到它正在使用的打字稿版本