ho bisogno di fare riferimento a un tipo in uno dei gruppi a cui fa riferimento il progetto che contiene il mio visivo modello Studio T4. Tuttavia, l'assembly di riferimento viene installato da un pacchetto NuGet. Man mano che la referenza Nuget si evolve, anche il percorso che NuGet inserisce nella cartella dei pacchetti della mia soluzione. Ad esempio, supponiamo che il mio pacchetto NuGet è:Caricamento di un assemblaggio NuGet nel T4 template
- Facade.Contract.1.0.1-alfa
Poi il percorso relativo ad esso dal mio progetto è:
- .. \ pacchetti \ Facade.Contract.1.0.1-alpha \ lib \ NET4 \ Facade.Contract.dll
Se la pre-release è stato aggiornato alla versione beta, che percorso cambieranno. Quando il pacchetto viene rilasciato, il percorso cambierà. E ogni volta il percorso cambia, la catena di montaggio nel mio file .tt * non è aggiornato:
- < # @ nome assembly =" .. \ pacchetti \ Facade.Contract.1.0.1-alpha \ lib \ NET4 \ Facade.Contract.dll" #>
non credo ci sia un modo per ottenere questo direttamente con la direttiva di montaggio; tuttavia, sono aperto ad alcune idee pazze. Posso caricare l'assembly da solo nel corrente, o un AppDomain subordinato o solo riflessione?
penso di poterlo fare, ma non sono sicuro di come fare per scoprire dinamicamente il percorso per l'assemblaggio si fa riferimento nel riferimenti del progetto usando la logica T4.
Qualche idea?
come stai eseguendo i modelli T4, si corrono all'interno di Visual Studio o durante la costruzione utilizzando msbuild? – Frank
Si esegue all'interno di Visual Studio (a differenza di quello che ho detto nella mia modifica ... correggo il prima possibile). Quindi dovrei avere accesso all'intero DTE. – Trinition
Sto facendo un piccolo progresso usando VSLangProj per scoprire i percorsi di riferimento, dopo essere stato ispirato da questo articolo: http://t4-editor.tangible-engineering.com/blog/add-references-to-visual-studio-project- from-t4-template.html – Trinition