【发布时间】:2020-03-11 09:42:36
【问题描述】:
是否可以将 **/*.tt 文件转换为 *.cs 文件。 使用 Azure Devops 管道?
否则是否有 CLI 命令可用于使用 TextTransform 的 Dotnet 核心?
我已经测试过:T5.TextTransform.Tool 但不起作用(并且已弃用)
感谢您的帮助
【问题讨论】:
标签: c# .net-core azure-devops
是否可以将 **/*.tt 文件转换为 *.cs 文件。 使用 Azure Devops 管道?
否则是否有 CLI 命令可用于使用 TextTransform 的 Dotnet 核心?
我已经测试过:T5.TextTransform.Tool 但不起作用(并且已弃用)
感谢您的帮助
【问题讨论】:
标签: c# .net-core azure-devops
我如何使用 Devops 管道 + 脚本解决这个问题:
安装全局-g
搜索所有 *.tt 文件并使用 t4 命令进行转换
Get-ChildItem -Path .\ -Filter *.tt -Recurse -File -Name| ForEach-Object {
$file = [System.IO.Path]::GetFileName($_);
$directory = [System.IO.Path]::GetDirectoryName($_)
"Conversion file : " + $file
t4 "$directory\$file" -I="$directory"
}
注意:将 T4.ps1 文件放在 *.tt 文件的父目录中很重要
【讨论】:
是否可以将 **/*.tt 文件转换为 *.cs 文件。使用 Azure Devops 管道?
答案是肯定的。
根据包状态T5.TextTransform.Tool:
T5 是当时 Mono.TextTemplating 还没有出现的权宜之计 可用于 .NET Core。现在情况不再如此,T5 是 不需要并且不再维护。 使用 Mono.TextTemplating 的 dotnet-t4 代替。
所以,我们可以使用Mono.TextTemplating 代替T5.TextTransform.Tool。
此外,还有一个TextTransform.exe命令行工具的实现,我们可以使用命令行将.tt文件转换成.cs文件:
"%CommonProgramFiles%\Microsoft Shared\TextTemplating\1.2\texttransform.exe" -out %1.cs -P %2 -P "%ProgramFiles%\Reference Assemblies\Microsoft\Framework\v3.5" %1.tt
查看this thread了解更多详情。
希望这会有所帮助。
【讨论】: