所以我正在修改一个多项目 VS 模板(Visual Studio 项目模板),我想在根模板中设置一个自定义参数以供子模板使用。但是,我想根据现有参数进行设置。
因此,例如,这很好用:
<CustomParameter Name="$FaultProject$" Value="MyProject.FaultContracts"/>
变量 $FaultProject$ 应该被 MyProject.FaultContracts 替换。
但是,这不起作用:
<CustomParameter Name="$FaultProject$" Value="$safeprojectname$.FaultContracts"/>
我希望 $safeprojectname$ 被正确的值替换,但事实并非如此。而是将变量 $FaultProject$ 替换为 $safeprojectname$.FaultContracts。$safeprojectname$ 被解释为文字而不是它的参数。
尽管在同一个文件中,这完全符合预期:
<ProjectTemplateLink ProjectName="$safeprojectname$.FaultContracts">WCFFaultContract\FaultContract.vstemplate</ProjectTemplateLink>
任何想法都会有所帮助。我相信我可能能够编写一个 IWizard 类来执行此操作,但如果可能的话,我宁愿避免这样一个简单的功能。
或者,如果我可以获得一个包含根模板的 $safeprojectname$ 值的参数,那也可以满足我的需要(在子模板中,$safeprojectname$ 更改为子项目的名称,而不是它的值在根模板中有)。