Tôi cần tham chiếu một Loại trong một trong các hội đồng được tham chiếu bởi dự án có chứa mẫu Visual Studio T4 của tôi. Tuy nhiên, hội đồng tham chiếu được cài đặt từ gói NuGet. Khi tham chiếu Nuget tiến hóa, thì đường dẫn NuGet sẽ đặt nó vào trong thư mục gói của giải pháp của tôi. Ví dụ, giả sử gói NuGet của tôi là:Đang tải một cụm NuGet trong Mẫu T4
- Facade.Contract.1.0.1-alpha
Sau đó, đường dẫn tương đối đến nó từ dự án của tôi là:
- .. \ các gói \ Facade.Contract.1.0.1-alpha \ lib \ net4 \ Facade.Contract.dll
Nếu tiền phát hành được cập nhật thành beta, đường dẫn đó sẽ thay đổi. Khi gói được phát hành, đường dẫn sẽ thay đổi. Và mỗi khi con đường thay đổi, các dây chuyền lắp ráp trong file * .tt của tôi đã quá hạn:
- < # @ lắp ráp name =" .. \ gói \ Facade.Contract.1.0.1-alpha \ lib \ net4 \ Facade.Contract.dll "#>
Tôi không nghĩ rằng có cách để thực hiện điều này trực tiếp với chỉ thị lắp ráp; tuy nhiên, tôi mở ra một số ý tưởng điên rồ. Tôi có thể tải bản thân lắp ráp vào hiện tại, hoặc một AppDomain cấp dưới hoặc chỉ phản chiếu?
Tôi nghĩ tôi có thể, nhưng tôi không chắc chắn làm thế nào để đi về tự động phát hiện đường dẫn đến hội đồng tham chiếu trong tài liệu tham khảo của dự án sử dụng logic T4.
Bất kỳ ý tưởng nào?
cách bạn thực hiện mẫu T4 của bạn, chúng có chạy trong Visual Studio hoặc trong quá trình xây dựng bằng cách sử dụng msbuild không? – Frank
Nó chạy bên trong Visual Studio (không giống như những gì tôi đã nói trong bản chỉnh sửa của mình ... Tôi sẽ sửa lại càng sớm càng tốt). Vì vậy, tôi nên có quyền truy cập vào toàn bộ DTE. – Trinition
Tôi đang thực hiện một chút tiến bộ bằng cách sử dụng VSLangProj để khám phá các đường dẫn tham chiếu, sau khi được lấy cảm hứng từ bài viết này: http://t4-editor.tangible-engineering.com/blog/add-references-to-visual-studio-project- from-t4-template.html – Trinition