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