Visual Studio T4 şablonumu içeren proje tarafından başvurulan derlemelerden birinde bir Tür'e başvurmam gerekiyor. Ancak, başvurulan derleme bir NuGet paketinden yüklenir. Bu Nuget referansı geliştikçe, NuGet'in onu çözümümün paketleri klasörüne yerleştirdiği yol da olacaktır. Örneğin, diyelim ki benim Nuget paketidir:T4'de bir NuGet aksamı yükleme Şablon
- Facade.Contract.1.0.1-alfa
Sonra projemden buna göreli bir yoldur:
- .. \ paketler \ Facade.Contract.1.0.1-alfa \ lib \ NET4 \ Facade.Contract.dll yayın öncesi beta güncellenmesi halinde
, bu yol değişecektir. Paket serbest bırakıldığında, yol değişecektir. Ve yol değiştiren her zaman, benim * .tt dosyasında montaj hattı güncel değil:
- < # @ derleme adı =" .. \ paketleri \ Facade.Contract.1.0.1-alfa \ lib \ n \ net4 \ Facade.Contract.dll "#>
Doğrudan montaj yönergesiyle bunu gerçekleştirmenin bir yolu olduğunu sanmıyorum; ancak bazı çılgın fikirlere açığım. Derlemeyi kendim mi yoksa alt bağımlı mı yoksa yalnızca yansıtma etki alanı AppDomain'e yükleyebilir miyim?
Sanırım yapabilirim, ancak T4 mantığını kullanarak projenin başvurularında başvurulan derlemenin yolunu dinamik olarak keşfetmeye nasıl gideceğimi bilmiyorum.
Herhangi bir fikrin var mı?
T4 şablonlarınızı nasıl çalıştırıyorsunuz, Visual Studio'da veya msbuild kullanarak derleme sırasında mı çalışıyorsunuz? – Frank
Visual Studio'nun içinde çalışıyorum (düzenlememde söylediğimden farklı olarak ... bunu en kısa sürede düzeltirim). Bu yüzden tüm DTE'ye erişmem gerekiyor. – Trinition
Bu makaleden ilham alındıktan sonra referans yollarını keşfetmek için VSLangProj kullanarak biraz ilerleme yapıyorum: http://t4-editor.tangible-engineering.com/blog/add-references-to-visual-studio-project- from-t4-template.html – Trinition