简单型的修改类似该路径下的模板文件即可(vs版本或安装路径不同路径可能不同)
C#:
模板参数参考https://msdn.microsoft.com/zh-cn/library/eehb4faa.aspx
<path>\Microsoft Visual Studio 12.0\Common7\IDE\ItemTemplates[Cache]\CSharp\Code\2052\Class\Class.cs
例如添加如下内容
/************************************************************** * Filename: $safeitemrootname$.cs * Copyright: $registeredorganization$ Co., Ltd. * * Description: $safeitemrootname$ ClassFile. * * @author: wjshan0808 * @version $time$ @Reviser Initial Version **************************************************************/
$time$参数的值太长,不合适,如果有$date$最好,可惜默认的没有,那就来添加一个.
步骤:
1.创建强命名程序集
using System; using System.Collections.Generic; //添加程序集引用 // Microsoft.VisualStudio.TemplateWizardInterface.dll // EnvDTE.dll // using Microsoft.VisualStudio.TemplateWizard; using EnvDTE; namespace CustomParameter { //IWizard 接口说明 //https://msdn.microsoft.com/zh-cn/library/microsoft.visualstudio.templatewizard.iwizard(v=vs.80).aspx public class CustomParameters : IWizard { public void RunFinished() { //throw new NotImplementedException(); } public void RunStarted(object automationObject, System.Collections.Generic.Dictionary<string, string> replacementsDictionary, WizardRunKind runKind, object[] customParams) { try { //添加自定义模板参数 Date string key = "$Date$"; if (replacementsDictionary.ContainsKey(key)) replacementsDictionary.Remove(key); replacementsDictionary.Add(key, System.DateTime.Now.ToString("MM/dd/yyyy")); //可以扩展一个修订者 //string extendKey = "Reviser"; //if (replacementsDictionary.ContainsKey(extendKey)) // replacementsDictionary.Remove(extendKey); //replacementsDictionary.Add(extendKey, "[弹窗/读文件/...]获取信息"); } catch (Exception ex) { } } // This method is only called for item templates, // not for project templates. public bool ShouldAddProjectItem(string filePath) { return true; } public void BeforeOpeningFile(EnvDTE.ProjectItem projectItem) { //throw new NotImplementedException(); } public void ProjectFinishedGenerating(EnvDTE.Project project) { //throw new NotImplementedException(); } public void ProjectItemFinishedGenerating(EnvDTE.ProjectItem projectItem) { //throw new NotImplementedException(); } } }
可以用sn工具生成.snk文件,也可以左键项目属性->签名创建.snk文件。
项目文件AssemblyInfo.cs中添加snk文件
[assembly: AssemblyKeyFile("CustomParameter.snk")]
/keyfile: https://msdn.microsoft.com/zh-cn/library/wb84w704.aspx
此操作会出现 <...使用命令行选项“/keyfile”或适当的项目设置代替“AssemblyKeyFile”...>警告,消除警告重新回到属性签名选择生成的snk即可。
使用开发人员命令提示工具
提取公钥到CustomParameter.psnk
>sn -p CustomParameter.snk CustomParameter.psnk
查看公钥信息
>sn -tp CustomParameter.psnk
2.部署到GAC(global assembly cache)
使用管理员身份运行开发人员命令提示工具然后使用GACUtil工具部署程序集
>GACUtil /i CustomParameter.dll
成功标记:程序集已成功添加到缓存中。
程序集卸载(如果代码更新出错什么的..!)
>gacutil /u CustomParameter,Version=1.0.0.0,Culture=Neutral,PublicKeyToken=1d6512175a2e39a6
重新安装
>GACUtil /i CustomParameter.dll /f
3.查看程序集信息
>gacutil /l CustomParameter
全局程序集缓存包含下列程序集: CustomParameter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1d6512175a2e39a6, processorArchitecture=MSIL 项目数 = 1
4.修改模板文件
<path>\Microsoft Visual Studio 12.0\Common7\IDE\ItemTemplates[Cache]\CSharp\Code\2052\Class\Class.vstemplate
参考:https://msdn.microsoft.com/zh-cn/library/ms185301.aspx
添加程序集块
<WizardExtension>
<Assembly>CustomParameter, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=1d6512175a2e39a6</Assembly>
<FullClassName>CustomParameter.CustomParameters</FullClassName>
</WizardExtension>
到此看看效果
/************************************************************** * Filename: Class2.cs * Copyright: Microsoft Co., Ltd. * * Description: Class2 ClassFile. * * @author: wjshan0808 * @version 09/01/2016 @Reviser Initial Version **************************************************************/ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Class2 { } }