Pergunta

Eu queria usar T4 para gerar propriedades para uma classe parcial. Eu estou correndo em um problema de configuração onde meu arquivo .TT está no mesmo projeto como o arquivo de classe I deseja estender. Então, se eu tiver que incluem a montagem no arquivo .TT-lo ficar de bloqueado. Eu tentei fazer uma linha de comando na pré-compilação, mas o problema é que VS sempre quer recompilar o arquivo .TT com o projeto.

A única solução que eu posso pensar é para renomear os arquivos .tt dizer .t4 e, em seguida, usar um comando pré-compilação com TextTransform Check-out para criar o arquivo .cs no diretório do projeto.

Alguém pode pensar em uma maneira mais limpa de fazer isso?

Foi útil?

Solução

Assumindo que o bloqueio é causado pelo seu modelo usando reflexão para ler metadados da classe parcial você precisa estender, você poderia resolver o problema de travamento se você usar CodeModel. Esta API é fornecida pelo Visual Studio e permite-lhe obter os metadados diretamente do arquivo de origem, sem a necessidade de compilar a classe parcial ou carregar a DLL compilada. Aqui está um exemplo de um gerador de código T4 que usa essa abordagem: http://www.olegsych.com/2008/07/t4-template-for-generating-sql-view-from-csharp-enumeration

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