开发一个guidance package的步骤如下:
- 定义 recipes ,包括定义参数(arguments), 向导页面(wizards) 和 所执行的操作(actions)
- 定义 Visual Studio 模板文件(Template)。
- 设计 actions 。
- 书写参数类型编辑器和转换器,即editors 和 converters 。
- 定义 T4 模板 (如果一个 action 需要使用 T4 template 生成代码) 。
- 测试 package。
- 绑定 package 安装文件。
一个guidance package 包含下面的部分或者全部的文件:
- Guidance package 配置文件(是一个XML文档,必须)
- Visual Studio 模板文件(可使用VS自动生成,然后对生成的模板再做稍微更改即可)
- T4 模板(以.T4结尾,用于生成代码)
- 一些DLL文件,包括 actions, type editors, value providers和type converters (建议使用单一的DLL)
以下是一份Guidance package 配置文件,其中有注释:
<?
xml version="1.0" encoding="utf-8"
?>
< GuidancePackage xmlns ="http://schemas.microsoft.com/pag/gax-core"
Name ="这里是Guidance package的名字"
Caption ="这里是标题"
Description ="这里是描述"
Guid ="51FCD4D0-B90C-4f11-B868-E9D71D8B7746"
BindingRecipe ="BindingRecipe"
SchemaVersion ="1.0" >
< Recipes >
< Recipe Name ="这里是Recipe 名" Bound ="是否有限制可以是true或false" Recurrent ="执行后是否重新呈现,可以是true或者false" >
< Caption > 这里是Recipe 标题 </ Caption >
< Description > 这里是Recipe 的描述. </ Description >
< HostData >
< Icon ID ="1046" />
< CommandBar Name ="这里是该Recipe 可以绑定的位置,可供选择的有Solution,Solution Folder,Solution Add,Solution Folder Add,Project,Project Add,Folder,Item,Web Project,Web Item,Web Folder" />
</ HostData >
< GatheringServiceData >
< Wizard xmlns ="http://schemas.microsoft.com/pag/gax-wizards" SchemaVersion ="1.0" >
< Pages >
< Page >
< Title > 这里是Page的标题 </ Title >
< LinkTitle > 这里是收集参数的向导页面的左侧显示的标题 </ LinkTitle >
< Fields >
< Field ValueName ="参数名" Label ="显示名"
InvalidValueMessage ="无效输入时显示的信息." >
< Tooltip > 提示信息 </ Tooltip >
</ Field >
</ Fields >
</ Page >
</ Pages >
</ Wizard >
</ GatheringServiceData >
< Actions >
< Action
Name ="Action名"
Type ="HoLPackage.Actions.HelloWorldAction, HoLPackage" />
</ Actions >
</ Recipe >
</ Recipes >
</ GuidancePackage >
< GuidancePackage xmlns ="http://schemas.microsoft.com/pag/gax-core"
Name ="这里是Guidance package的名字"
Caption ="这里是标题"
Description ="这里是描述"
Guid ="51FCD4D0-B90C-4f11-B868-E9D71D8B7746"
BindingRecipe ="BindingRecipe"
SchemaVersion ="1.0" >
< Recipes >
< Recipe Name ="这里是Recipe 名" Bound ="是否有限制可以是true或false" Recurrent ="执行后是否重新呈现,可以是true或者false" >
< Caption > 这里是Recipe 标题 </ Caption >
< Description > 这里是Recipe 的描述. </ Description >
< HostData >
< Icon ID ="1046" />
< CommandBar Name ="这里是该Recipe 可以绑定的位置,可供选择的有Solution,Solution Folder,Solution Add,Solution Folder Add,Project,Project Add,Folder,Item,Web Project,Web Item,Web Folder" />
</ HostData >
< GatheringServiceData >
< Wizard xmlns ="http://schemas.microsoft.com/pag/gax-wizards" SchemaVersion ="1.0" >
< Pages >
< Page >
< Title > 这里是Page的标题 </ Title >
< LinkTitle > 这里是收集参数的向导页面的左侧显示的标题 </ LinkTitle >
< Fields >
< Field ValueName ="参数名" Label ="显示名"
InvalidValueMessage ="无效输入时显示的信息." >
< Tooltip > 提示信息 </ Tooltip >
</ Field >
</ Fields >
</ Page >
</ Pages >
</ Wizard >
</ GatheringServiceData >
< Actions >
< Action
Name ="Action名"
Type ="HoLPackage.Actions.HelloWorldAction, HoLPackage" />
</ Actions >
</ Recipe >
</ Recipes >
</ GuidancePackage >