相关疑难解决方法(0)

将CustomParameter与Visual Studio多项目模板一起使用

我希望能够为包含以下两个项目的解决方案创建多项目模板(其中接口应包含对业务层的引用):

  • <proj_name>.interface
  • <proj_name>.business.

通常,您可以包含$safeprojectname$,其中包括:

用户在"新建项目"对话框中提供的名称

但是,正如文章中指出的构建一个多项目的可视化工作室模板

这里的问题是在每个子模板中,$ safeprojectname $代表当前项目名称.需要有一种方法从父模板传入根$ safeprojectname $.

我试图实施该解决方案在这太问题建议VS 2010多项目模板:项目间引用,通过使用CustomParameters,但我遇到了麻烦.

我的拉链模板目录如下所示:

  • MultiTemplate.vstemplate
  • 接口
    • InterfaceTemplate.vstemplate
    • MyTemplate.Interface.csproj
  • 商业
    • BusinessTemplate.vstemplate
    • MyTemplate.Business.csproj

您可以下载整个目录,但这里有一些选择的代码段

MultiTemplate.vstemplate

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="ProjectGroup">
  <TemplateData><!--Removed for brevity --></TemplateData>
  <TemplateContent>
    <CustomParameters>
      <CustomParameter Name="$SolutionName$" Value="$safeprojectname$"/>
    </CustomParameters>
    <ProjectCollection>
      <ProjectTemplateLink ProjectName="$safeprojectname$.Interface">
        Interface\InterfaceTemplate.vstemplate
      </ProjectTemplateLink>
      <ProjectTemplateLink ProjectName="$safeprojectname$.Business">
        Business\BusinessTemplate.vstemplate
      </ProjectTemplateLink>
    </ProjectCollection>
  </TemplateContent>
</VSTemplate>
Run Code Online (Sandbox Code Playgroud)

接口\ InterfaceTemplate.vstemplate

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
  <TemplateData><!--Removed for brevity --></TemplateData>
  <TemplateContent>
    <Project TargetFileName="MyTemplate.Interface.csproj" …
Run Code Online (Sandbox Code Playgroud)

visual-studio-2010 visual-studio visual-studio-templates

31
推荐指数
1
解决办法
6007
查看次数