创建自定义模板向导
1. 创建实现
名称
说明
BeforeOpeningFile
在打开模板中的项之前运行自定义向导逻辑。
ProjectFinishedGenerating
当项目已完成生成时运行自定义向导逻辑。
ProjectItemFinishedGenerating
当项目项已完成生成时运行自定义向导逻辑。
RunFinished
当向导已完成所有任务时运行自定义向导逻辑。
RunStarted
在模板向导运行的开头运行自定义向导逻辑。
ShouldAddProjectItem
指示是否应将指定的项目项添加到项目中。
那么我们主要应用的就是RunStarted(在模板向导运行的开头运行自定义向导逻辑。)方法,我们先看看他的参数。
automationObject
类型:System.Object 模板向导正在使用的自动化对象。
replacementsDictionary
类型:System.Collections.Generic.Dictionary(Of String, String) 要替换的标准参数的列表。
runKind
类型:Microsoft.VisualStudio.TemplateWizard.WizardRunKind WizardRunKind 指示向导运行的类型。
customParams
类型:System.Object() 在项目中用来执行参数替换的自定义参数。
replacementsDictionary(要替换的标准参数的列表)我们利用他来添加或替换项目中的参数,用runKind来判断用户创建的是项目还是项。
代码如下:
using System;
using System.Collections.Generic;
using EnvDTE;
using Microsoft.VisualStudio.TemplateWizard;
namespace Happy.TemplateWizard
{
public class IWizardImplementation : IWizard
{
///
/// 在打开模板中的项之前运行自定义向导逻辑。
///
/// 将要打开的项目项。
public void BeforeOpeningFile(ProjectItem projectItem)
{
}
///
/// 当项目已完成生成时运行自定义向导逻辑。
///
/// 已完成生成的项目
public void ProjectFinishedGenerating(Project project)
{
}
///
/// 当项目项已完成生成时运行自定义向导逻辑。
///
/// 已完成生成的项目项
public void ProjectItemFinishedGenerating(ProjectItem projectItem)
{
}
///
/// 当向导已完成所有任务时运行自定义向导逻辑。
///
public void RunFinished()
{
}
///
/// 在模板向导运行的开头运行自定义向导逻辑。
///
/// 模板向导正在使用的自动化对象
/// 要替换的标准参数的列表
/// WizardRunKind 指示向导运行的类型
/// 在项目中用来执行参数替换的自定义参数
public void RunStarted(object automationObject, Dictionary
{
try
{
replacementsDictionary.Add("$UserInfo$", "测试值");//你还可以运行窗口等等
}
catch
{
//出错了。。。
}
}
///
/// 指示是否应将指定的项目项添加到项目中。
///
/// 项目项的路径
///
public bool ShouldAddProjectItem(string filePath)
{
return true;
}
}
}
好了代码实现了,接下来就要用强名称对程序集进行签名(必须签名)
我们就用Visual Studio来做吧,打开项目属性→签名→勾选为项目签名 如下图
![C#创建自定义模板向导,自定义模版中的参数淘宝自定义模板](/Files/20119/67efdbee-b94e-49f5-b2fb-5964c9ecdd3c.png)
在新建签名,这个步骤我就不说了…..
编译完成后我们用Visual Studio的命令来添加到全局缓存中命令:gacutil /i 程序集名称(包含完整路径、扩展名)
提示成功后我们在使用SN –T 程序集名称(包含完整路径、扩展名) 来查看公钥值
等到公钥后我们就去修改模版吧,我们就拿Visual Studio以有的来修改吧。
打开安装目录的Common7\IDE\ItemTemplatesCache\Web\CSharp\2052\Class.zip/Class.vstemplate
后面添加
如图
![C#创建自定义模板向导,自定义模版中的参数淘宝自定义模板](/Files/20119/f7c1e4d5-83c3-41de-80f0-ed8c46ade07c.jpg)
保存后在去看看效果吧。。。。 我
最新评论