开发一个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>