Visual Studio多项目模板用于子项目文件夹和csproj文件的不同名称

时间:2016-08-18 13:57:55

标签: c# visual-studio

我已经查看了很多关于Visual Studio多项目模板的好信息,包括:

  • 项目元素的MSDN参考,&项目模板向导
  • Tony Sneed博客 - 构建一个多项目Visual Studio模板

我的问题类似于StackOverflow上的以下问题: Visual Studio Multi-Project Templates rename namespaces and project names

以下是使用" MyService"创建新的多项目模板后生成的目录结构。作为名称 - 这是预期的:

 - MyService
   - Actor
   - Api
   - Client
   - Interfaces

在"演员"目录,我希望项目文件是MyService.Actor.csproj,我最终得到了Actor.csproj。以下是主要模板和演员模板的摘录......(顺便说一下,我使用向导传递服务名称,其他文件按预期命名)

我希望子模板中的TargetFileName=$saferootprojectname$.Actor.csproj导致项目文件的名称为MyService.Actor.csproj - 但它是actor.csproj,所有其他项目文件api.csproj也是如此,client.csprojinterfaces.csproj(没有MyService前缀)

主要模板

<ProjectCollection>
    <SolutionFolder Name="Dependencies">
    </SolutionFolder>   
    <ProjectTemplateLink ProjectName="Actor">
        Actor\Actor.vstemplate
    </ProjectTemplateLink>
    <ProjectTemplateLink ProjectName="Api">
        Api\Api.vstemplate
    </ProjectTemplateLink>
    <ProjectTemplateLink ProjectName="Client">
        Client\Client.vstemplate
    </ProjectTemplateLink>
    <ProjectTemplateLink ProjectName="Interfaces">
        Interfaces\Interfaces.vstemplate
    </ProjectTemplateLink>
</ProjectCollection>

儿童模板

<Project TargetFileName="$saferootprojectname$.Actor.csproj"   File="MyService.Actor.csproj" ReplaceParameters="true">
    <ProjectItem ReplaceParameters="true" TargetFileName="App.config">App.config</ProjectItem>
  <Folder Name="PackageRoot" TargetFolderName="PackageRoot">
    <Folder Name="Config" TargetFolderName="Config">
      <ProjectItem ReplaceParameters="true" TargetFileName="Settings.xml">Settings.xml</ProjectItem>
    </Folder>
    <ProjectItem ReplaceParameters="true" TargetFileName="ServiceManifest.xml">ServiceManifest.xml</ProjectItem>
  </Folder>
  <ProjectItem ReplaceParameters="true" TargetFileName="packages.config">packages.config</ProjectItem>
  <ProjectItem ReplaceParameters="true" TargetFileName="Ping.cs">Ping.cs</ProjectItem>
  <ProjectItem ReplaceParameters="true" TargetFileName="Program.cs">Program.cs</ProjectItem>
  <Folder Name="Properties" TargetFolderName="Properties">
    <ProjectItem ReplaceParameters="true" TargetFileName="AssemblyInfo.cs">AssemblyInfo.cs</ProjectItem>
  </Folder>
  <ProjectItem ReplaceParameters="true" TargetFileName="ServiceEventSource.cs">ServiceEventSource.cs</ProjectItem>
</Project>

正在使用Visual Studio 2015 Update 3.

0 个答案:

没有答案