Pergunta

arquivos de modelo T4 são reconhecíveis automaticamente pelo IDE em projetos C #, mas eu não tenho nenhuma pista sobre projectos ++ como eles podem ser integrados em C (à excepção de usar arquivos make).

Todas as idéias?

Foi útil?

Solução

Os arquivos de modelo T4 podem ser integrados em projetos C ++, mas é um pouco mais de trabalho do que com um projeto C # / VB. Criar um novo arquivo de texto em seu projeto C ++ e dar-lhe uma extensão .tt. Em seguida, escreva o seu modelo como normal. projecto A C ++, em seguida, precisa de mais trabalho para obtê-lo para transformar os modelos. A maneira rápida e suja que eu tenho que trabalhar era para adicionar um passo de compilação personalizado e tê-lo chamar "C: \ Program Files \ Common Files \ Microsoft Shared \ TextTemplating \ 1.1 \ TextTransform.exe" diretamente. Outra maneira que eu encontrei foi a de adicionar uma tarefa MSBuild personalizada. Instruções podem ser encontradas aqui

Esta página tem mais informações e alguns bons links para outras páginas sobre o uso de código T4 geração.

Outras dicas

MSBuild tarefa não vai como este é um arquivo vcproj (C ++) para VCBuild é usado trabalho. A maneira mais fácil de obter a tt compilado é adicionar um passo de compilação personalizado como abaixo ..

"C:\Program Files (x86)\Common Files\Microsoft Shared\TextTemplating\1.1\TextTransform.exe" -out "$(ProjectDir)\VSProject.cpp" -I "$(ProjectDir)" "$(ProjectDir)\VSProject.tt"

Eu passei várias horas investigando a solução MSBuild tarefa acima e é bom bastante para código gerenciado, mas eu não consigo ver nenhuma maneira de usá-lo para C ++ (bar converter o vcproj para Eek csproj)

Para Visual Studio 2017 (e talvez 2015?)

Os comandos listados em outras respostas são parcialmente incorrectas, como o TextTransform.exe arquivo foi movido para um novo diretório: a pasta devenv raiz, por exemplo:.

C:\Progra~1\Visual Studio 2017\Enterprise\Common7\IDE

O comando agora deve ser atualizado para o seguinte:

"$(DevEnvDir)TextTransform.exe" -out "$(ProjectDir)xxx.cpp" "$(ProjectDir)xxx.tt"

onde xxx é o nome do arquivo de modelo .tt yout arquivo

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top