Многопроектный шаблон VS 2010: межпроектные ссылки
В настоящее время я занимаюсь разработкой мультипроектного шаблона. Я использую подход, описанный здесь: Как: создавать мультипроектные шаблоны. Этот шаблон будет иметь основной шаблон веб-сайта (смоделированный после temaplte MVC 3) и несколько дополнительных шаблонов библиотек вызовов для разделения функциональности.
Пример: WebsiteProject1 находится в папке в шаблоне проекта и имеет все свои файлы и.vstemplate в этой папке. ClassLibrary1 находится в другой папке в шаблоне проекта, а также имеет свой собственный файл.vstemplate.
У меня вопрос, как мне установить ссылки в WebsiteProject1 для ClassLibrary1, чтобы при создании проекта из шаблона ссылки присутствовали и решались? Это вообще возможно?
1 ответ
Сегодня я работал над подобной настройкой и обнаружил, что это действительно возможно, но для этого требуется ручная адаптация файла 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>
Обратите внимание, что я не заменил значение тега
РЕДАКТИРОВАТЬ: Использование $safeprojectname$ будет ссылаться на сам проект. Если у вашей библиотеки классов есть жестко закодированное имя, это на самом деле не проблема, но в моем случае мне нужно было имя типа "NewProject.Library", и я решил это, добавив CustomParameter $SolutionName$, например, в свой многостраничный файл vstemplate:
<CustomParameters>
<CustomParameter Name="$SolutionName$" Value="$safeprojectname$"/>
</CustomParameters>