VS模板参数:获取部分项目名称

时间:2018-10-15 11:36:17

标签: visual-studio-2017 csproj project-template visual-studio-templates

我有一个多项目解决方案模板。 我是根据this指南创建的。

我的解决方案是使用中央共享项目生成多平台项目:

  • MyProject.Shared
  • MyProject.UWP
  • MyProject.Droid

问题是,当我在单个项目的 csproj 文件中使用$safeprojectname$.Shared(在UWP中使用)时,为了添加对共享项目的引用,生成的是MyProject1.UWP.Shared而不是MyProject1.Shared

如何从单个项目中引用共享项目名称/解决方案名称?

P.S。有一个$SpecificSolutionName$参数,但只有在用户选中创建解决方案目录选项时,该参数才有效。

TL; DR

如何从参数中获取部分项目名称?

2 个答案:

答案 0 :(得分:1)

$ext_safeprojectname$可以解决问题。

credit

答案 1 :(得分:1)

在根 .vstemplate 文件中,您应该在ProjectName="$projectname$"标记中使用ProjectTemplateLink

<TemplateContent>
    <ProjectCollection>
      <ProjectTemplateLink ProjectName="$projectname$.Shared" CopyParameters="true">
        MyProject.Shared\MyTemplate.vstemplate
      </ProjectTemplateLink>
      <ProjectTemplateLink ProjectName="$projectname$.UWP" CopyParameters="true">
        MyProject.UWP\MyTemplate.vstemplate
      </ProjectTemplateLink>
      <ProjectTemplateLink ProjectName="$projectname$.Droid" CopyParameters="true">
        MyProject.Droid\MyTemplate.vstemplate
      </ProjectTemplateLink>
    </ProjectCollection>
  </TemplateContent>