Многопроектные шаблоны Visual Studio переименовывают пространства имен и имена проектов - PullRequest
6 голосов
/ 15 марта 2011

Я успешно создал шаблон многопроектного решения. Однако я хотел бы переименовать начало каждого проекта в название решения.

Итак, мои проекты:

  • ProjectOne.A
  • ProjectTwo.B

будет переименован в

  • SolutionName.A
  • SolutionName.B

где SolutionName - имя пользователя при создании проекта.

Я прочитал следующие статьи:

но, похоже, никто не отвечает на мою конкретную ситуацию.

1 Ответ

8 голосов
/ 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.

...