5

我已成功创建多项目解决方案模板。但是,我想要做的是将每个项目的开头重命名为解决方案的名称。Visual Studio多项目模板重命名命名空间和项目名称

所以我的项目:

  • ProjectOne.A
  • ProjectTwo.B

将被重新命名为

  • SolutionName.A
  • SolutionName.B

其中SolutionName是用户创建项目时的名称。

我已经仔细阅读以下条款:

但没有似乎回答我的具体情况。

+0

我很快就会看到与此相关的博客文章(第二天左右):http://compositecode.com – Adron 2011-03-21 21:52:41

+0

@Adron - 你可以发布确切的链接。我不想追捕正确的文章。 – Omar 2011-03-21 22:18:58

+0

我还没有测试你的建议,但我相信它是基于Myles的评论。 – Omar 2011-05-20 18:06:20

回答

7

如果你的主.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文件。

+0

正是我在找的东西!非常感谢。 – 2011-05-20 12:17:48

+0

其中一些项目相互引用,但是'$ safeitemname $'和'$ safeprojectname $'占位符没有被替换,或者被替换为错误的值。关于如何一起参考项目的任何想法? – Omar 2011-09-04 05:09:37

+0

是的,读取向导中的所有项目名称。让每个项目引用的使用变量在向导中定义。看到这个例子:http://vsix.codeplex.com/ – 2011-09-04 12:48:40