如何写自己的Guidance Packages(一)

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

你可能感兴趣的:(package)