包含多个 IWizard 实现的模板

更新:2007 年 11 月

在 Visual Studio 2008 之前的 Visual Studio 版本中,模板只支持一个 IWizard 实现。Visual Studio 2008 引入了一项称为“链接”的新功能,该功能使单个模板可以包含多个独立的 IWizard 实现。这些实现按顺序调用,使您可以创建具有更丰富、更灵活的功能的模板。

实现的详细信息

系统调用由 Microsoft 实现的 VsTemplate 向导,通过读取模板的 .vstemplate 文件来处理模板。VsTemplate 可以列出一个或多个程序集,这些程序集包含将被调用以参与处理模板的 IWizard 实现。为了利用链接功能,必须在模板的 .xml 文件中按照调用向导的顺序列出所有向导。

通过允许模板向 IWizard 实现传递参数,并允许一个 IWizard 实现向另一个实现传递参数,可以将一个 Dictionary 对象用作参数替换列表。IWizard 可以保存对传递到 RunStarted 的 Dictionary 的引用。IWizard 在通知回调中所做的任何更改都将被保留。

替换参数(例如,$MyVariable)具有全局范围,可以从任何 IWizard 访问这些参数。对于您不想让其他 IWizard 不慎使用或更改的所有替换变量,请确保对这些变量指定唯一的名称。建议您对向导所用的所有替换参数做书面记录,以便让其他用户了解其用途。

IWizard 包含一个名为 ShouldAddItem 的布尔值属性。此属性通知向导是否应添加指定的文件。如果 ShouldAddItem 设置为 false,则当前向导之后的所有向导都不会加载项。

请参见

任务

如何:替换模板中的参数

如何:使用向导来处理项目模板