Многопроектный шаблон 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>
Другие вопросы по тегам