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

VS template parameters: Get partial project name

我有一个多项目解决方案模板。 我使用 this 指南创建了它。

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

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

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

P.S。有 $SpecificSolutionName$ 参数,但只有在用户选中 Create solution directory 选项时才有效,这对我来说不够好。

TL;DR

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

$ext_safeprojectname$ 成功了。

(credit)

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

<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>