2012-03-29 3 views
5

В настоящее время я разрабатываю многопроектный шаблон. Я использую описанный здесь подход: How to: Create Multi-Project Templates. Этот шаблон будет содержать основной шаблон веб-сайта (смоделированный после шаблона MVC 3) и несколько дополнительных шаблонов библиотеки вызовов, чтобы поддерживать функциональность отдельно.VS-2010 Multi-Project Template: Inter-Project Ссылки

Пример: WebsiteProject1 живет в папке в проекте шаблона и имеет все свои файлы и .vstemplate в этой папке. ClassLibrary1 живет под другой папкой в ​​проекте шаблона, а также имеет свой собственный файл .vstemplate.

Мой вопрос в том, как настроить ссылки в WebsiteProject1 для ClassLibrary1, чтобы при создании проекта из шаблона ссылки присутствовали и решались? Возможно ли это?

ответ

5

Сегодня я работал над подобной настройкой, и я обнаружил, что это действительно возможно, но для экспорта шаблона требуется ручная настройка файла csproj вашего WebsiteProject. Также есть какая-то ошибка, в которой нет метки в теге Name в теге ProjectReference.

Основном вы хотите файл csproj содержать следующее:

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

Обратите внимание, что я не заменить < Имя > значение тега, так как замены лексем не работают. К счастью, это, похоже, не мешает работе ссылки.

EDIT: Использование $ safeprojectname $ будет ссылаться на сам проект. Если в вашей библиотеке классов есть жестко заданное имя, это не проблема, но в моем случае мне понадобилось имя типа «NewProject.Library», я решил это, добавив CustomParameter $ SolutionName $, как это в моем файле проекта vstemplate Multi Project:

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

Куда в файле Multi-Project vstemplate вы поместили блок 'CustomParameters'? Я добавил его и изменил свой '.proj', чтобы использовать' $ SolutionName $', но я не получил его, чтобы заменить параметр, и он просто оставляет те точные символы там. – KyleMit

+1

@KyleMit Тег находится в моем как первый ребенок. – IvanL

+0

У меня это было, и Visual Studio Designer дал мне это [** предупреждение **] (http://i.imgur.com/H5eGQJF.png). Хотя [MSDN docs] (http://msdn.microsoft.com/en-us/library/ms247063.aspx), похоже, согласны с вами. Может быть, у меня проблема в другом месте. – KyleMit

Смежные вопросы