我有一个多项目解决方案模板。 我是根据this指南创建的。
我的解决方案是使用中央共享项目生成多平台项目:
MyProject.Shared
MyProject.UWP
MyProject.Droid
问题是,当我在单个项目的 csproj 文件中使用$safeprojectname$.Shared
(在UWP中使用)时,为了添加对共享项目的引用,生成的是MyProject1.UWP.Shared
而不是MyProject1.Shared
。
如何从单个项目中引用共享项目名称/解决方案名称?
P.S。有一个$SpecificSolutionName$
参数,但只有在用户选中创建解决方案目录选项时,该参数才有效。
TL; DR
如何从参数中获取部分项目名称?
答案 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>