开发者

Visual Studio multi-project templates rename namespaces and project names

开发者 https://www.devze.com 2023-02-17 07:31 出处:网络
I\'ve successfully created a multi-project solution template. What I would like to do, however, is to rename the beginning of each project with the name of the solution.

I've successfully created a multi-project solution template. What I would like to do, however, is to rename the beginning of each project with the name of the solution.

So my projects:

  • ProjectOne.A
  • ProjectTwo.B

Would be renamed to

  • SolutionName.A
  • SolutionName.B

where SolutionName is the name by the user when they created the project.

I've read the following articles:

  • http://msdn.microsoft.com/en-us/library/ms185308.aspx
  • http://msdn.microsoft.com/en-us/library/ms185311.aspx
  • http://msdn.microsoft.com/en-us/library/ms247063.aspx
开发者_高级运维

but none seem to answer my specific situation.


If your main .vstemplate (the solution's one) is like the example below, you can use variables defined in wizard's dictionary to rename project folders and .csproj to whatever names you want.

<?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>

Use similar changes to addition .vstemplates (the projects' .vstemplates) to rename the .csproj files.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号