Visual Studio 2013 Update 2 finally added a built-in way to do this with ProjectTemplateLink
The CopyParameters
attribute will enable child access to all the variables of the parent template, with the prefix of ext_
.
You don’t even need CustomParameters for this. Change your ProjectTemplateLink to this:
<ProjectTemplateLink ProjectName="$safeprojectname$.Interface" CopyParameters="true">
Interface\InterfaceTemplate.vstemplate
</ProjectTemplateLink>
And then you can achieve your goal in the child .csproj
like so:
<ItemGroup>
<ProjectReference Include="..\$ext_safeprojectname$.Business\$ext_safeprojectname$.Business.csproj">
<Project>{E5511F75-5B9C-4816-B991-E09225661CF4}</Project>
<Name>MyTemplate.Business</Name>
</ProjectReference>
</ItemGroup>