MSBuild类型脚本编译目标
我有一个T4模板,它生成了一些.d.ts文件,我想将这些文件包含在我的TypeScript构建中。我想更好地理解TypeScript编译器何时作为构建的一部分(或从.ts文件保存)运行,以便确保在TypeScript构建之前运行T4生成目标 有人能给我更多关于:MSBuild类型脚本编译目标,msbuild,typescript,Msbuild,Typescript,我有一个T4模板,它生成了一些.d.ts文件,我想将这些文件包含在我的TypeScript构建中。我想更好地理解TypeScript编译器何时作为构建的一部分(或从.ts文件保存)运行,以便确保在TypeScript构建之前运行T4生成目标 有人能给我更多关于: CompileTypeScript目标何时实际运行 预计算CompileTypeScript目标实际上在做什么 是否有建议的方法确保MSBuild目标在TypeScript生成之前运行 (如果有必要,我使用的是VS2013更新3。)1.
(如果有必要,我使用的是VS2013更新3。)1.CompileTypeScript目标实际运行的时间 CompileTypeScript添加到CompiledPendson列表中,此列表在此处定义:“C:\Program Files(x86)\MSBuild\12.0\Bin\Microsoft.Common.CurrentVersion.targets”。默认目标(通常为build)取决于CoreBuild,而CoreBuild又要求执行编译目标,请参见target Compile(第2762行)和target CoreBuild(第703行) 因此,当目标是build时,它会执行TypeScript构建,因为build需要BeforeBuild、CoreBuild和AfterBuild才能运行。CoreBuild目标需要很多目标,包括编译和TypeScipt,它们添加到Microsoft.TypeScript.targets文件(“C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v12.0\TypeScript\Microsoft.TypeScript.targets”)中。 见:
CompileTypeScript;
美元(已编撰);
2.预计算CompileTypeScript目标实际上在做什么
当使用outDir选项时,它会尝试查找最常见的路径。此外,当没有TypeScript文件时,这个任务会产生错误:没有要编译的文件(或其他)。
当指定单个输出(--out参数)时,它会执行不同的操作。
看起来Te VS向编译器提供了完整的路径,这个任务在可能的情况下使它们成为相对的(但我不知道原因)
3.是否有建议的方法确保MSBuild目标在TypeScript生成之前运行
创建自己的msbuild任务时,可以修改CompiledPendson目标。您应该在导入Microsoft.TypeScript.targets后执行此操作。您可以这样更改它:
<PropertyGroup>
<CompileDependsOn>
CompileYourTarget;
$(CompileDependsOn);
</CompileDependsOn>
</PropertyGroup>
编译你的目标;
美元(已编撰);
编辑:我更改了答案的第2部分下面的答案是否回答了您的问题,还是您需要其他信息?
<PropertyGroup>
<CompileDependsOn>
CompileYourTarget;
$(CompileDependsOn);
</CompileDependsOn>
</PropertyGroup>