2011-11-09 13 views
10

Vì vậy, tôi đang sửa đổi Mẫu đa dự án VS (mẫu dự án Visual Studio) và tôi muốn đặt Thông số tùy chỉnh trong mẫu gốc sẽ được các mẫu phụ sử dụng . Tuy nhiên, tôi muốn đặt nó dựa trên một tham số hiện có.Cách tạo Thông số tùy chỉnh được đánh giá trong VSTemplate

Vì vậy, ví dụ, điều này hoạt động tốt:

<CustomParameter Name="$FaultProject$" Value="MyProject.FaultContracts"/>

Biến $ FaultProject $ được thay thế bằng MyProject.FaultContracts, như nó phải được.

này, tuy nhiên, không hoạt động:

<CustomParameter Name="$FaultProject$" Value="$safeprojectname$.FaultContracts"/>

tôi mong đợi $ safeprojectname $ để được thay thế bằng giá trị chính xác, nhưng nó không phải là. Thay vào đó, biến $ FaultProject $ được thay thế bởi $ safeprojectname $ .FaultContracts. $ Safeprojectname $ được hiểu là một chữ chứ không phải là tham số của nó.

Đây là mặc dù thực tế là trong cùng một tập tin, điều này hoạt động chính xác như mong đợi:

<ProjectTemplateLink ProjectName="$safeprojectname$.FaultContracts">WCFFaultContract\FaultContract.vstemplate</ProjectTemplateLink>

Bất kỳ ý tưởng sẽ là hữu ích. Tôi tin rằng tôi có thể viết một lớp IWizard mà sẽ làm điều này, nhưng tôi muốn tránh điều đó cho một chức năng đơn giản như vậy, nếu có thể.

Hoặc, nếu tôi có thể nhận được thông số chứa giá trị $ safeprojectname $, điều đó cũng sẽ đáp ứng nhu cầu của tôi (trong các mẫu con, $ safeprojectname $ được đổi thành tên của tiểu dự án, không phải giá trị trong mẫu gốc).

+3

Bạn đã bao giờ tìm ra cách giải quyết vấn đề này chưa? –

+3

Không, tôi chưa bao giờ tìm được câu trả lời hay. Có vẻ như, như tôi đã sợ ở trên, tôi sẽ phải viết một giao diện IWizard. Tôi sẽ phải quay trở lại với nó sau, như thời hạn dự án có nghĩa là chỉ cần chỉnh sửa các tập tin dự án và giải pháp bằng tay nhanh hơn viết giải pháp IWizard. Tôi muốn cuối cùng, vì điều này sẽ đến một lần nữa (toàn bộ các điểm mẫu ở nơi đầu tiên). Tôi ước có một giải pháp sẽ giải quyết vấn đề này mà không yêu cầu nhóm của tôi phải có thêm một mã tùy chỉnh trên tất cả các máy của họ để làm việc, nhưng đó là những gì tôi còn lại. –

Trả lời

1

Trong mẫu nhiều dự án, về cơ bản bạn chỉ có thể có thông số thay thế ở cấp dự án. Mẫu gốc ở cấp độ giải pháp và về cơ bản bạn không thể có $ safeprojectname $ trong đó. Tuy nhiên bạn có thể thực hiện giao diện IWizard và có thể có các tham số thay thế của riêng bạn, thay thế bằng các giá trị bạn cung cấp.

Các vấn đề liên quan