@Adron - можешь выложить точную ссылку. Я не хочу искать нужную статью.
- personOmar  schedule22.03.2011
comment
Мне еще предстоит проверить то, что вы предложили, но я верю, что это работает, основываясь на комментарии Майлза.
- personOmar  schedule20.05.2011
Если ваш основной .vstemplate (один из решений) аналогичен приведенному ниже примеру, вы можете использовать переменные, определенные в словаре мастера, для переименования папок проекта и .csproj на любые имена, которые захотите.
<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="2.0.0" Type="ProjectGroup"
xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name>My Web Server Solution with DAL</Name>
<Description>Creates Projects for Web Server DAL and adds them to a new or existing solution</Description>
<Icon></Icon>
<ProjectType>CSharp</ProjectType>
<ProjectSubType>My</ProjectSubType>
<DefaultName>WebServer</DefaultName>
<NumberOfParentCategoriesToRollUp>2</NumberOfParentCategoriesToRollUp>
<TemplateGroupID>My</TemplateGroupID>
<TemplateID>My.Dal.Web.Template</TemplateID>
</TemplateData>
<TemplateContent>
<ProjectCollection>
<ProjectTemplateLink ProjectName="$ModelProjectName$">
Children\Model\ProjectTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$SharedModelContractsProjectName$">
Children\SharedModelContracts\ProjectTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$RepositoryInterfacesProjectName$">
Children\RepositoryInterfaces\ProjectTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$RepositoryImplementationProjectName$">
Children\RepositoryImplementation\ProjectTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$RepositoryExtensionsProjectName$">
Children\RepositoryExtensions\ProjectTemplate.vstemplate
</ProjectTemplateLink>
</ProjectCollection>
</TemplateContent>
<WizardExtension>
<Assembly>My.WebServerDalExtension.Wizard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5c93c79b0feae916</Assembly>
<FullClassName>My.WebServerDalExtension.Wizard.Controller</FullClassName>
</WizardExtension>
</VSTemplate>
Используйте аналогичные изменения для добавления .vstemplates (.vstemplates проектов), чтобы переименовать файлы .csproj.
personDanny Varodschedule05.05.2011
comment
Некоторые из этих проектов ссылаются друг на друга, но заполнители $safeitemname$ и $safeprojectname$ не заменяются или заменяются неправильным значением. Есть идеи, как связать проекты вместе?
- personOmar; 04.09.2011
comment
Да, прочтите все названия проектов в своем мастере. Определите в мастере переменные использования каждой ссылки на проект. См. Этот пример: vsix.codeplex.com - personDanny Varod; 04.09.2011
comment
Да, похоже, что добавление пользовательской переменной в раздел ссылок .csproj абсолютно ничего не дает.
- personDmitri Nesteruk; 20.09.2011
comment
Файл .vstemplate должен включать замену переменных для этого файла .csproj.
- personDanny Varod; 20.09.2011
comment
как передать пользовательские параметры дочернему шаблону?
- personAlex Gordon; 03.10.2018
comment
@AlexGordon Я реализовал это много лет назад, однако я помню, что это просто сработало. Сегодня я использую гораздо лучший подход, который не использует механизм шаблонов VS.
- personDanny Varod; 04.10.2018
comment
@DannyVarod - это секретный подход, который вы используете, или это то, чем вы потенциально готовы публично поделиться здесь?
- personAlex Gordon; 04.10.2018
comment
@AlexGordon Не засекречено, я могу объяснить, как это работает, и спросить о публикации кода. Обратной стороной шаблонных проектов является то, что их сложно поддерживать в актуальном состоянии. Вот почему я придумал новое решение, которое мы реализовали - используйте репозиторий рабочего кода, который компилируется с запускаемыми модульными и интеграционными тестами с общими именами, например. VAL_ROOT_VAL, VAL_DOMAIN_VAL, VAL_PROJECT_VAL. Затем используйте мастер для клонирования этого репозитория с заменами, чтобы создать новый репозиторий с конкретными необходимыми именами. Это решение значительно упрощает обновление, поскольку шаблон компилируется и содержит тесты.
- personDanny Varod; 07.10.2018