5

여러 프로젝트 솔루션 템플릿을 만들었습니다. 그러나 내가하고 싶은 것은 각 프로젝트의 시작 부분을 솔루션의 이름으로 바꾸는 것입니다.Visual Studio 다중 프로젝트 템플릿이 네임 스페이스 및 프로젝트 이름의 이름을 바꿉니다.

그래서 내 프로젝트 :

  • ProjectOne.A
  • ProjectTwo.B는

  • SolutionName.A로 이름이 변경 될 수
  • SolutionName.B

여기서 SolutionName은 사용자가 프로젝트를 만들 때 사용한 이름입니다.

나는 다음과 같은 기사를 읽었습니다 :

하지만 아무도 내 특정 상황에 답변을 보인다.

+0

나는이 곧 (다음날)과 관련된 블로그 항목을 갖게 될 것이다 : http://compositecode.com – Adron

+0

@Adron - 당신은 정확한 링크를 게시 할 수있다. 나는 옳은 기사를 사냥하고 싶지 않다. – Omar

+0

나는 당신이 제안한 것을 아직 시험해 보지 못했지만 Myles의 의견을 바탕으로 작동한다고 믿습니다. – Omar

답변

7

.vstemplate (솔루션 중 하나)이 아래 예제와 같은 경우 마법사의 사전에 정의 된 변수를 사용하여 프로젝트 폴더의 이름을 바꾸고 .csproj을 원하는 이름으로 사용할 수 있습니다. 추가 .vstemplates에

<?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)는 .csproj 파일의 이름을 변경합니다.

+0

내가 뭘 찾고 있었는지! 많은 감사합니다. –

+0

이들 프로젝트 중 일부는 서로를 참조하지만 '$ safeitemname $'및 '$ safeprojectname $'자리 표시자가 대체 중이 아니거나 잘못된 값으로 대체됩니다. 프로젝트를 함께 참조하는 방법에 대한 아이디어가 있습니까? – Omar

+0

예, 마법사의 모든 프로젝트 이름을 읽습니다. 각 프로젝트 참조의 사용 변수를 마법사에 정의하십시오. 이 예제를 보라 : http://vsix.codeplex.com/ –

관련 문제