【问题标题】:Use TextTransform (tt files) into the Azure Devops pipeline在 Azure Devops 管道中使用 TextTransform(tt 文件)
【发布时间】:2020-03-11 09:42:36
【问题描述】:

是否可以将 **/*.tt 文件转换为 *.cs 文件。 使用 Azure Devops 管道?

否则是否有 CLI 命令可用于使用 TextTransform 的 Dotnet 核心?

我已经测试过:T5.TextTransform.Tool 但不起作用(并且已弃用)

感谢您的帮助

【问题讨论】:

    标签: c# .net-core azure-devops


    【解决方案1】:

    我如何使用 Devops 管道 + 脚本解决这个问题:

    1. 提到@Leo Liu-MSFT 安装 dotnet-t4

    安装全局-g

    1. 创建powershell脚本并找到tt文件

    搜索所有 *.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 文件的父目录中很重要

    【讨论】:

      【解决方案2】:

      是否可以将 **/*.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了解更多详情。

      希望这会有所帮助。

      【讨论】:

      • 是的,我解决了,谢谢你的帖子,它帮助了我。我会用我的所有步骤来发布新的答案来修复它
      • 你们知道这种方法是否适用于 .NET Core 5.0 项目吗?当我尝试在我的项目中安装“dotnet-t4”NuGet 包时,出现此错误:NU1202: Package dotnet-t4 2.2.1 is not compatible with net5.0 (.NETCoreApp,Version=v5.0)。 dotnet-t4 2.2.1 包支持:netcoreapp3.1 (.NETCoreApp,Version=v3.1) / any
      猜你喜欢
      • 2020-05-26
      • 2022-10-14
      • 2021-11-01
      • 1970-01-01
      • 2019-04-30
      • 1970-01-01
      • 2019-11-13
      • 1970-01-01
      • 2019-11-23
      相关资源
      最近更新 更多