Como adicionar uma dependência para um arquivo arbitrário para um modelo de T4?

StackOverflow https://stackoverflow.com/questions/280748

  •  07-07-2019
  •  | 
  •  

Pergunta

Eu tenho um modelo T4 que gera classes de um arquivo xml.

Como posso adicionar uma dependência entre o arquivo XML e o arquivo de modelo para que quando o arquivo xml é modificado o modelo é repetida automaticamente sem escolher "ferramenta personalizada Run" no menu de contexto?

Foi útil?

Solução

Eu não acredito T4 suporta transformação do modelo automático com base em uma dependência externa. Concordo com Marc - se você tiver apenas um arquivo externo, você poderia criar uma "ferramenta personalizada" personalizado para o seu arquivo XML ou simplesmente usar ttxgen . No entanto, eu não acho que esta abordagem escalas até a um cenário onde t4 modelo depende mais de um arquivo. Pode ser necessário criar um pacote Visual Studio para lidar com isso.

Outras dicas

Quanto tempo demora o take ferramenta para executar? Uma opção preguiçoso pode ser simplesmente editar o csproj tal que sempre executa a ferramenta durante a construção (presumivelmente por meio de <Exec ... /> ou um arquivo targets costume.) - é claro, isso depende dele ser rápido para executar

Outra maneira seria escrever um calço que funciona como o "Custom Tool" no VS, e simplesmente chama o exe existente (ou qualquer outro) com os argumentos certos. Não trivial, mas factível ( ver aqui ) - Eu acredito este então supostamente desempenha razoavelmente bem com a detecção de alterações. Na verdade, é na minha lista de coisas a fazer para um projeto atual, então eu vou descobrir em breve ...

Você pode usar AutoTT Visual Studio extensão.

Esta extensão permite aos disparadores do configure que serão executados um modelo de T4.

Uma das possíveis gatilhos é uma alteração de arquivo. No arquivo de configuração de amostra em AutoTT página, a expressão regular para os gatilhos corresponde a todos os arquivos nas pastas especificadas (Controladores, conteúdo), mas você pode alterá-lo para que seja executada com um arquivo específico apenas.

Chirpy é outra opção para fazer isso. E também T4 Regenerador , que faz isso de uma maneira diferente.

Você já tentou usar <# @ xsd

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