2012-03-29 35 views
5

Tôi hiện đang phát triển mẫu nhiều dự án. Tôi đang sử dụng cách tiếp cận được ghi lại ở đây: How to: Create Multi-Project Templates. Mẫu này sẽ có một mẫu trang web chính (được mô hình hóa sau khi templte MVC 3) và một vài mẫu thư viện gọi bổ sung để giữ riêng chức năng.VS Mẫu đa dự án 2010: Tài liệu tham khảo liên dự án

Ví dụ: WebsiteProject1 sống trong một thư mục trong dự án mẫu và có tất cả các tệp và .vstemplate trong thư mục đó. ClassLibrary1 sống trong một thư mục khác trong dự án mẫu và cũng có tệp .vstemplate riêng.

Câu hỏi của tôi là, làm cách nào để thiết lập tham chiếu trong WebsiteProject1 cho ClassLibrary1 để khi dự án được tạo từ mẫu, tham chiếu có mặt và giải quyết? Điều này thậm chí có thể?

Trả lời

5

Tôi đã làm việc trên một thiết lập tương tự ngày hôm nay và tôi thấy rằng nó thực sự là có thể nhưng nó đòi hỏi một sự thích nghi thủ công của tệp csproj của WebsiteProject của bạn sau khi xuất mẫu. Ngoài ra có một số loại lỗi mà không có thay thế mã thông báo trong thẻ tên trong thẻ ProjectReference.

Về cơ bản bạn muốn file csproj để chứa những điều sau đây:

<ItemGroup> 
    <ProjectReference Include="..\$SolutionName$.Library\$SolutionName$.Library.csproj"> 
     <Project>{8a8efea7-e80c-4de2-8c35-ced49a814675}</Project> 
     <Name>ClassLibrary</Name> 
    </ProjectReference> 
</ItemGroup> 

Lưu ý rằng tôi đã không thay thế < Tên > giá trị thẻ kể từ khi thay thế thẻ không hoạt động được. May mắn thay điều này dường như không cản trở công việc của tài liệu tham khảo.

EDIT: Sử dụng $ safeprojectname $ sẽ tham chiếu đến chính dự án. Nếu thư viện lớp của bạn có một tên hardcoded này không thực sự là một vấn đề nhưng trong trường hợp của tôi tôi muốn một tên như "NewProject.Library" Tôi giải quyết điều này bằng cách thêm một CustomParameter $ SolutionName $ như thế này trong tập tin vstemplate Multi Project của tôi:

<CustomParameters> 
    <CustomParameter Name="$SolutionName$" Value="$safeprojectname$"/> 
</CustomParameters> 
+0

Ở đâu trong tệp vstemplate nhiều dự án bạn đã đặt khối 'CustomParameters'? Tôi đã thêm nó, và thay đổi '.proj' của tôi để sử dụng' $ SolutionName $ ', nhưng tôi đã không nhận được nó để thay thế tham số và nó chỉ để lại những ký tự chính xác trong đó. – KyleMit

+1

@KyleMit Thẻ được tìm thấy trong của tôi là con đầu tiên. – IvanL

+0

Huh, đó là nơi tôi đã có nó và Visual Studio Designer đã cho tôi [** warning **] (http://i.imgur.com/H5eGQJF.png). Mặc dù [tài liệu MSDN] (http://msdn.microsoft.com/en-us/library/ms247063.aspx) dường như đồng ý với bạn. Có lẽ tôi có vấn đề ở một nơi khác. – KyleMit

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