vs2010自定义项目模板

一、创建Wizard组件

1、vs2010新建类库wizard,添加引用“Microsoft.VisualStudio.TemplateWizard”、“EnvDTE”, 其中“EnvDTE”嵌入式互操作我设置为false了

2、新建类Class1, Class1继承自IWizard,实现RunStarted接口,其余为空

1 System.Windows.Forms.MessageBox.Show("12345");
2             replacementsDictionary.Add("$moni$", "yesterday");
3             replacementsDictionary.Add("$yenni$", "today");

  replacementsDictionary能添加参数,也能修改参数

3、wizard工程右键属性-》签名,选中“为程序集签名”,新建密钥文件,设置密钥.

4、打开vs命令提示符,注册到GAC

C:\Program Files\Microsoft Visual Studio 10.0\VC>gacutil /i "D:\users\adminis tor\documents\visual studio 2010\Projects\wizard\wizard\bin\Debug\wizard.dll"

 GAC操作命令,卸载重新注册之后,vs需重启

   注册              gacutil /i 项目名.dll  

   卸载              gacutil /u 项目名     这里不能带dll

   查看注册情况       gacutil /lr 项目名     这里不能带dll

二、创建.zip模板文件

1、准备好将作为模板的项目文件,添加好Wizard组件中用于替换的参数

2、文件菜单下导出模板,向导过程中去掉“自动导入模板到vs..”,导出为zip文件,解压后可以看到模板内容

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5
 6 namespace $safeprojectname$
 7 {
 8     class Program
 9     {
10         // $yenni$
11         static void Main(string[] args)
12         {
13             // $moni$
14             int a = 12;
15
16             // $haha$
17             Console.WriteLine(a);
18         }
19     }
20 }

3、修改MyTemplate.vstemplate文件,

CustomParameters添加自定义参数,WizardExtension添加wizard组件
 1   <TemplateContent>
 2     <Project TargetFileName="t11.csproj" File="t11.csproj" ReplaceParameters="true">
 3       <ProjectItem ReplaceParameters="true" TargetFileName="Program.cs">Program.cs</ProjectItem>
 4       <Folder Name="Properties" TargetFolderName="Properties">
 5         <ProjectItem ReplaceParameters="true" TargetFileName="AssemblyInfo.cs">AssemblyInfo.cs</ProjectItem>
 6       </Folder>
 7     </Project>
 8     <CustomParameters>
 9       <CustomParameter Name="$haha$" Value="a=9;"/>
10     </CustomParameters>
11   </TemplateContent>
12   <WizardExtension>
13     <Assembly>wizard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d93913adab93889d</Assembly>
14     <FullClassName>wizard.Class1</FullClassName>
15   </WizardExtension>

4、重新压缩为zip文件,并复制到vs模板目录

C:\Users\Administrator\Documents\Visual Studio 2010\Templates\ProjectTemplates

5、重新打开vs,新建项目时可以看到新建的模板,新建后模板参数自动替换成预制值

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5
 6 namespace tw16
 7 {
 8     class Program
 9     {
10         // today
11         static void Main(string[] args)
12         {
13             // yesterday
14             int a = 12;
15
16             // a=9;
17             Console.WriteLine(a);
18         }
19     }
20 }

三、创建vsi文件

该文件可以双击直接安装,模板文件会自动导入到vs中,但是不会将wizard文件注册到gac中。

1、新建扩展名为.vscontent 的xml文件

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <VSContent xmlns="http://schemas.microsoft.com/developer/vscontent/2005">
 3   <Content>
 4     <FileName>tw.zip</FileName>
 5     <DisplayName>tw Project</DisplayName>
 6     <Description> A tw project created for this example.</Description>
 7     <FileContentType>VSTemplate</FileContentType>
 8     <ContentVersion>1.0</ContentVersion>
 9     <Attributes>
10       <Attribute name="ProjectType" value="Visual C#"/>
11       <Attribute name="ProjectSubType" value="新建项目"/>
12       <Attribute name="TemplateType" value="Project"/>
13     </Attributes>
14   </Content>
15 </VSContent>

2、将.vscontent与.zip文件压缩成.zip文件,后缀修改为.vsi,就是Visual Studio 安装程序 (.vsi) 文件。 

四、vsix安装程序

(vs2017, 自动安装模板,无需将wizard文件注册到gac中)

1、在扩展性选项下,新建vsix项目,添加.zip模板文件和wizard文件

2、打开source.extension.vsixmanifest,修改(参考https://msdn.microsoft.com/en-us/library/dd885241.aspx?f=255&MSPPError=-2147217396

1 Set the Product Name field to My Project Template.
2 Set the Product ID field to MyProjectTemplate - 1.
3 Set the Author field to Fabrikam.
4 Set the Description field to My project template.
5 In the Assets section, add a Microsoft.VisualStudio.ProjectTemplate type and set its path to the name of the .zip file.

  第5步:模板文件tw.zip, Type:Microsoft.VisualStudio.ProjectTemplate

              Source:File on System

      wizard文件,Type:Microsoft.VisualStudio.Assembly

              Source:File on System

              Embed in this folder: Assemblies

原文地址:https://www.cnblogs.com/xiaoyu1029/p/9251588.html

时间: 2024-08-29 18:32:30

vs2010自定义项目模板的相关文章

VS自定义项目模板:[3]创建自定义模板

VS2013(VS2010等版本也适用,均需安装Visual Studio SDK) 如何创建自定义模板 1 创建一个C# Project Template项目. 2 项目模板中主要包含4种文件: ●代码文件(可删除),通过模板创建的项目直接包含这些文件. ●自定义项目模板的图标(可删除). ●自定义模板的项目文件,通过模板创建的项目的项目文件. ●模板文件vstemplate,很重要,通过模板创建项目时,通过这个文件来生成项目的. 模板文件的生成操作(Build Action)为VSTempl

VS自定义项目模板:[5]模板数据的子元素

VS2013(VS2010等版本也适用,均需安装Visual Studio SDK) 必需元素 1 Name.Description.Icon.ProjectType Name:模板名称: Description:模板描述: Icon:模板图标: ProjectType:模板项目类型. 注意:修改模板图标文件时需要修改模板数据中Icon元素的值. END 可选元素 1 ProjectSubType 怎么用? ProjectSubType指定 将模板归入 ProjectType 元素中指定的值的子

VS自定义项目模板:[1]导出模板

工具/原料 VS2013(VS2010等版本也适用,均需安装Visual Studio SDK) 方法/步骤 首先创建一个模型项目. 新建一个WinForm应用程序项目,修改窗体名称为MainForm.   通过 [文件]-->[导出模板] 打开“导出模板向导”界面.   模板类型选择 项目模板.   为模板取个名称,添加一些模板说明.   点击完成后就完成导出模板步骤了. 导出模板放在My Exported Templates文件夹中. 默认情况下模板导到C:\Users\***\Docume

VS自定义项目模板:[7]自定义模板向导

认识IWizard 接口 1 IWizard 接口用于定义模板向导扩展的逻辑. 该接口包含6个方法,方法的具体信息可参考MSDN. END 创建实现 IWizard 的程序集 1 创建一个类库项目MyTempalteWizar 添加EnvDTE.dll和Microsoft.VisualStudio.TemplateWizardInterface.dll两个引用. IWizardImplementationl类继承IWizard接口并实现接口的所有方法. 以RunStarted方法为例,在模板向导

VS自定义项目模板:[4]自定义模板的分组

VS2013(VS2010等版本也适用,均需安装Visual Studio SDK) 理解默认路径的意义 1 默认情况下,项目模板默认生成路径为:...\ProjectTemplates\CSharp\1033\MyTemplate.zip ProjectTemplate:由模板文件的类型Type="Project"决定,如果是项模板,则生成在ItemTemplates文件夹中. CSharp:由项目类型ProjectType属性决定. 1033:模板的LCID,英文环境下的LCID就

VS自定义项目模板:[2]创建VSIX项目模板扩展

VS2013(VS2010等版本也适用,均需安装Visual Studio SDK) 如何创建VSIX扩展项目? 1 新建项目-->选择扩展性中的VSIX Project项目. 2 双击打开source.extension.vsixmanifest文件,设置VSIX扩展项目的一些基础信息. 3 为VSIX扩展项目添加上篇经验导出的模板. 在Assets(资产)标签中新建,选择Type为Microsoft.VisualStudio.ProjectTemplate(项目模板),Source选择Fil

VS自定义项目模板:[8]自定义模板参数

如何在模板中定义和使用自定义模板参数? 1 CustomParameters元素的父元素是TemplateContent 下面定义一个模板参数$Para1$,值为MyObj. ps:CustomParameters元素定义在Project上方时,编译器会有一个警告,但不影响模板项目生成. 2 将源文件Class1.cs文件生成为目标项目的MyObj.cs文件 修改模板文件中的TargetFileName,模板项目文件中的包含文件以及Class1.cs的类名为自定义模板参数$Para1$ 3 重新

VS自定义项目模板:[9]动态添加项目文件

方法/步骤 为自定义向导项目添加设置窗体inputForm. 使用多选框来选择哪些类需要添加.   在inputForm窗体类中添加GetRemoveList来获取不需要添加的类名.   RunStarted方法中,将模板参数传递给inputForm窗体,并展现该窗体.   使用ProjectFinishedGenerating方法,项目创建结束时移除不需要的文件.   编译后,将其重新安装到全局程序集缓存中. 进行测试,仅选择MyObj.cs类,创建的项目中也不包含WizardTest.cs类

VS自定义项目模板:[6]模板参数

VS2013(VS2010等版本也适用,均需安装Visual Studio SDK) 认识模板参数 模板参数以 $parameter$ 格式进行声明. 模板参数能用于源代码文件,模板项目文件,模板文件等.   启用模板参数替换功能. 在模板文件(*.vstemplate)中,如需将模板参数替换成对应的值,需将ReplaceParameters 特性设置为 true. 如下:模板原文件Class1.cs中,下面语句实现目标.NET版本大于等于3.5的话,增加命名空间System.Linq的引用.在