Tôi đã gặp phải một vấn đề nhỏ với việc tạo mã T4 của mình.Cách tắt chỉ thị #line được ghi vào tệp đầu ra thế hệ T4
Tôi đã chia mẫu T4 thành các tệp riêng biệt và đặt chúng trong các thư mục khác nhau, tôi đã làm điều này để các phần của việc tạo mã của tôi có thể được sử dụng lại trong nhiều dự án, ví dụ: tạo mô hình, tạo kho lưu trữ và tạo dịch vụ tất cả bao gồm một tệp EntityGeneration.tt lõi. Thật không may, khi TextTemplating giải quyết lồng nhau của tôi bao gồm, nó xây dựng một chỉ thị tiền xử lý dài #line trong tệp .cs được tạo của nó, kết hợp tất cả các đường dẫn tương đối với tệp được bao gồm ở mức thấp nhất.
Thật không may, vì đường dẫn này được xây dựng với các đường dẫn tương đối, nó kết thúc không cần thiết lâu, do đó, dài trên thực tế là nó vượt quá chiều dài đường dẫn tối đa (Windows 7).
Đây là dòng có lỗi từ mã được tạo trong trường hợp bạn đang quan tâm:
#line 3 "C:\VS2010\AlbatrossTravelGroup\ASC\AlbatrossTravelGroup.ASC.BusinessRules\Services\Contracts\..\..\..\..\AlbatrossTravelGroup.BusinessRules\Services\Contracts\..\..\..\AlbatrossTravelGroup.Models\Repositories\Contracts\..\..\../AlbatrossTravelGroup.Common/CodeGeneration.tt"
Câu hỏi của tôi là thế này, làm thế nào tôi có thể vô hiệu hóa các chỉ thị được ghi vào file mã được tạo? Nếu không, làm thế nào tôi có thể tránh được vấn đề này mà không thay đổi cấu trúc tập tin của tôi?
Hiện tại, là giải pháp tạm thời, tôi đã tạo thư mục "CodeGeneration", tạo liên kết tượng trưng trong thư mục này cho từng tệp T4 của tôi để bao gồm.Sau đó, thay vì mỗi tệp T4 bao gồm các tệp T4 khác thông qua một đường dẫn tương đối, chúng chỉ sử dụng tên tệp. Sau đó, tại vị trí cuối cùng mà tôi muốn sử dụng các mẫu T4 này, tôi sử dụng một đường dẫn tương đối đến thư mục "CodeGeneration". Điều này dẫn đến độ dài đường dẫn ngắn hơn nhiều vì nó sử dụng nhiều đường dẫn tương đối ít hơn nhiều. Nếu bất cứ ai muốn giải thích đầy đủ, tôi sẽ đăng câu trả lời nếu được yêu cầu :) – Lukazoid
Giải pháp tạm thời của tôi ở trên đã bị hỏng, không biết tại sao studio trực quan chỉ đơn giản là bắt đầu không giải quyết được tệp. Cuối cùng tôi phải sử dụng registry để chỉ định các thư mục bổ sung bao gồm tt, ít hơn lý tưởng, nhưng có vẻ như là thứ duy nhất hoạt động. – Lukazoid
Bạn có thể thử một cái gì đó giống như giải pháp macro VS trình bày [ở đây] (http://stackoverflow.com/questions/3506525/t4-preprocessed-template-debugging-not-working-visual-studio-2010-rtm/7505247#7505247). – BitMask777