2012-03-29 10 views
5

Obecnie tworzę szablon wieloprojektowy. Używam podejścia udokumentowanego tutaj: How to: Create Multi-Project Templates. Ten szablon będzie miał główny szablon strony internetowej (wzorowany na temaplte MVC 3) i kilka szablonów bibliotek dodatkowych wywołań, aby zachować funkcjonalność oddzielnie.VS 2010 Szablon do wielu projektów: Referencje między projektami

Przykład: WebsiteProject1 mieszka w folderze w projekcie szablonu i ma wszystkie swoje pliki oraz .vstemplate w tym folderze. ClassLibrary1 mieszka pod innym folderem w projekcie szablonu i ma własny plik .vstemplate.

Moje pytanie brzmi: jak skonfigurować odniesienia w WebsiteProject1 dla ClassLibrary1, aby podczas tworzenia projektu z szablonu odniesienia były obecne i rozwiązywane? Czy to możliwe?

Odpowiedz

5

Pracowałem nad podobną konfiguracją już dziś i odkryłem, że jest to rzeczywiście możliwe, ale wymaga ręcznej adaptacji pliku csproj z witryny po wypakowaniu szablonu. Istnieje również pewien błąd, w którym nie ma żadnego zamiennika tokenu w znaczniku Name w tagu ProjectReference.

Basicly chcesz plik csproj zawierać następujące elementy:

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

pamiętać, że nie zastąpi Nazwa > wartość znacznika < ponieważ zamienniki Token nie działają. Na szczęście nie wydaje się to przeszkadzać w pracy referencyjnej.

EDIT: Użycie $ safeprojectname $ będzie dotyczyło samego projektu. Jeśli twoja biblioteka klas ma nazwę zakodowaną na stałe, to nie jest to problem, ale w moim przypadku chciałem mieć nazwę taką jak "NewProject.Library" Rozwiązałem to, dodając CustomParameter $ SolutionName $ tak jak w moim pliku vstemplate Multi Project:

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

Gdzie w pliku vstemplate Multi-Project umieściłeś blok "CustomParameters"? Dodałem go i zmieniłem '.proj', aby używał' $ SolutionName $ ', ale nie otrzymałem go, aby zastąpić parametr i po prostu pozostawia tam te dokładne znaki. – KyleMit

+1

@KyleMit Znacznik znajduje się w moim jako pierwsze dziecko. – IvanL

+0

Huh, to tam miałem to miejsce, a Visual Studio Designer dało mi to [** warning **] (http://i.imgur.com/H5eGQJF.png). Chociaż [dokumenty MSDN] (http://msdn.microsoft.com/en-us/library/ms247063.aspx) wydają się zgadzać z tobą. Może mam problem gdzieś indziej. – KyleMit

Powiązane problemy