问题
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.
回答1:
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.
来源:https://stackoverflow.com/questions/5307176/visual-studio-multi-project-templates-rename-namespaces-and-project-names