Usar TextTransform para gerar código automaticamente com T4 sem iniciar o Visual Studio
Ambiente operacional
- Visual Studio
-
- Visual Studio 2022
- Windows
-
- janelas 11
Pré-requisitos
- Visual Studio
-
- Funciona mesmo com uma versão um pouco mais antiga
pré-condição
Esta dica pressupõe o seguinte:
- Visual Studio instalado no Windows
Nesse caso, usaremos uma ferramenta chamada "TextTransform (ou TextTransformCore)", mas por se tratar de uma ferramenta incluída no Visual Studio, é necessário instalá-la mesmo que você não inicie o Visual Studio.
Qual é a diferença entre "TextTransform.exe" e "TextTransformCore.exe"?
"TextTransform.exe" é uma ferramenta inicial que existe desde o advento do Entity Framework.
TextTransformCore.exe é uma nova ferramenta criada com base no .NET 6.
Não há grande diferença funcional, então não importa qual você usa.
Criar um arquivo T4 (.tt)
Não é diferente do que você cria no Visual Studio, portanto, use um editor de texto para criá-lo. Desta vez, usaremos o código que criamos anteriormente como Sr./Sra.
<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ output extension=".cs" #>
<#
List<string> types = new(){"Int", "Short", "Long", "Float", "Double", "Decimal"};
#>
public static class ParseExtensions
{
<# foreach (var type in types) { #>
<# var typeLower = type.ToLower(); #>
public static <#= typeLower #> Parse<#= type #>(this string self, <#= typeLower #> defaultValue)
{
return <#= typeLower #>.TryParse(self, out var val) ? val : defaultValue;
}
<# } #>
}
Nesse caso, colocaremos esse arquivo no seguinte local. Você pode executá-lo em qualquer lugar, então deixe-o onde quiser.
- C:\Temporário\Sample.tt
Gerar código usando a ferramenta de linha de comando "TextTransform"
No Visual Studio, foi fácil porque o Visual Studio gerou código automaticamente usando "TextTransform", mas se você não usar o Visual Studio, terá que gerar código manualmente usando "TextTransform".
TextTransform é uma ferramenta de linha de comando que é instalada quando você instala o Visual Studio na seguinte pasta:
- < drivePath>\Arquivos de Programas\Microsoft Visual Studio\<Visual Studio Version>\<Editions>\Common7\IDE\TextTransform.exe
- < caminho de unidade>\Arquivos de Programas\Microsoft Visual Studio\<Visual Studio Version>\<Editions>\Common7\IDE\TextTransformCore.exe
[Exemplo]
- C:\Arquivos de Programas\Microsoft Visual Studio\2022\Community\Common7\IDE\TextTransform.exe
Inicie um terminal ou prompt de comando e use TextTransform para gerar código.
Para Windows 11, inicie o Terminal no menu Iniciar. Para outros sistemas operacionais, use o prompt de comando.
Para o terminal, mude para o prompt de comando. Não há nada que você não possa fazer com o PowerShell, mas a descrição muda um pouco.
cd
No comando, navegue até a pasta onde você colocou o arquivo .tt e digite o comando da seguinte maneira: (Altere a versão do caminho da pasta conforme apropriado.)
[Exemplo de entrada]
- "C:\Arquivos de Programas\Microsoft Visual Studio\2022\Community\Common7\IDE\TextTransform" Sample.tt
Se for bem-sucedido, o processo prossegue como se tivesse sido feito sem incidentes. Se você realmente olhar para a pasta, poderá ver que o código é gerado automaticamente.
O conteúdo também é criado corretamente.
Quero encurtar o caminho de TextTransform ao executar um comando.
Se você não quiser escrever um caminho longo para seu TextTransform toda vez que executar um comando, poderá registrar esse caminho em uma "variável de ambiente". Se for um prompt de comando de desenvolvimento que vem com o Visual Studio, ele fará referência a esse caminho por padrão, facilitando a gravação.
Se você examinar a pasta do Visual Studio no menu Iniciar, encontrará um prompt de comando de desenvolvimento e o iniciará.
Da mesma forma, ao escrever um comando, você pode omitir o caminho do TextTransform e executá-lo.
A propósito, no caso do Windows 11, é fácil abri-lo porque está embutido no terminal.
Coloque comandos em um arquivo .bat ou .ps1 para facilitar a execução
O conteúdo a ser descrito é o mesmo que ao inserir um comando normal, portanto, o conteúdo é omitido. Dependendo das configurações do sistema operacional, ele pode ser restrito para que não possa ser executado mesmo se você clicar duas vezes no arquivo .bat ou .ps1, portanto, nesse caso, configure-o para que possa ser executado.