在我的MsBuild中,TypeScript文件被编译为JavasScript,但没有复制到Publish输出文件夹中。
发生这种情况是在我开始使用Microsoft.TypeScript.MSBuild Nuget软件包之后,因此不需要在构建服务器上安装的特定版本的TypeScript上进行中继。如果在Visual Studio 2017中使用本地安装的TypeScript SDK,它将按预期工作。
通过从MsBuild输出中记录调试信息,我发现区别在于,使用Microsoft.TypeScript.MSBuild进行的构建缺少此条目:
concated = concated.reindex(natsorted(concated.index))
如所示,“ GetTypeScriptOutputForPublishing”取决于PipelineCollectFilesPhase,
因此,似乎在一种情况下,PipelineCollectFilesPhase依赖于GetTypeScriptOutputForPublishing,而TypeScript编译器的输出被复制到publish输出目录中,在另一种情况下,它不依赖于GetTypeScriptOutputForPublishing,而已编译的JavaScript文件从publish目录中丢失。
问题是我不知道在哪里定义了PipelineCollectFilesPhase的依赖关系,所以我现在知道了区别,但不完全知道原因。