11

所以我正在修改一个多项目 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$ 更改为子项目的名称,而不是它的值在根模板中有)。

4

1 回答 1

1

在多项目模板中,您基本上只能在项目级别使用替换参数。根模板位于解决方案级别,您基本上不能在其中包含 $safeprojectname$。但是,您可以实现 IWizard 接口,并且可以拥有自己的替换参数,替换为您提供的值。

于 2012-05-21T21:22:29.877 回答