Visual Studio 中创建带有向导的项目模板

2023-05-16

对于测试开发来说,建立新工程的次数要远远高于专职开发人员。由于每次建立一个测试工程都要例行公事的设置一大堆属性,例行公事的写一些同样的代码,非常耗时。因此打算通过建立项目模板来达到自己完成的目的。比如,在Visual Stuido中新建工程的时候,可以直接选择我们创建好的“GTest Project”,然后会弹出一个向导对话框,再设置一些属性,然后,一个可以直接使用的GTest工程就创建好了。
梳理了一下,我们需要的功能主要有两个:
1.项目模板(project template)
2.设置向导(project wizard)

Vistual Studio中有一个非常方便的功能,就是可以直接将某个工程导出为模板(菜单“File-Export Template”),导出的文件是一个zip压缩文件,放在My Documents\Visual Studio 2008\Templates\ProjectTemplates\中即可。如果需要设置成安装程序,只需要将其解压,然后添加一个.vscontent文件,然后再压缩,然后将压缩后的文件后缀改为.vsi。
.vscontent文件如下:
< VSContent  xmlns ="http://schemas.microsoft.com/developer/vscontent/2005" >
    
< Content >
        
< FileName > MyProjectTemplate.zip </ FileName >
        
< DisplayName > Sample Project Template </ DisplayName >
        
< Description > A project template created for this example. </ Description >
        
< FileContentType > VSTemplate </ FileContentType >
        
< ContentVersion > 1.0 </ ContentVersion >
        
< Attributes >
            
< Attribute  name ="ProjectType"  value ="Visual Basic" />
            
< Attribute  name ="ProjectSubType"  value ="" />
            
< Attribute  name ="TemplateType"  value ="Project" />
        
</ Attributes >
    
</ Content >
</ VSContent >

这样,第一步要实现的项目模板就非常轻松的实现了。接下来是要实现一个设置向导。要实现一个设置向导,需要做的事情是:
1.新建一个Class Lirary的向导工程。
2.添加.NET引用:“Microsoft.VisualStudio.TemplateWizardInterface”和“EnvDTE”
3.新建一个Windows Form(设置向导),添加一些自己想要的控件。并保证将设置的属性能够通过外部获取。
4.新建一个类,实现IWizard接口。主要实现RunStarted方法。在RunStarted方法中,将前面的Windows Form创建出来,然后获取设置的属性,添加到replacementsDictionary中。比如:replacementsDictionary.Add("$MyName$", myName);
5.新建一个工程,作为模板。在该工程里,可以通过使用"$MyName$"达到替换之前设置的myName属性。
6.将向导工程编译出来的dll安装到全局的Assembly缓存中。一般通过:gacutil -i xxx.dll来做。
7.导出之前创建的模板工程,解压zip文件,打开.vstemplate文件,添加对向导DLL的引用:
< WizardExtension >
    
< Assembly > MyTemplateWizardLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=345b65148ade810f, processorArchitecture=MSIL </ Assembly >
    
< FullClassName > MyTemplateWizardLib.MyWizardLib </ FullClassName >
</ WizardExtension >
8.再压缩,然后将zip文件放置到My Documents\Visual Studio 2008\Templates\ProjectTemplates\即可。

这样,一个带有设置向导的项目模板就建立好了。比如,我可以在向导中让用户选择需要添加的lib引用,或是dll引用,然后,我自动将其选择的引用设置到新建的工程中,如果是gtest工程,我将在模板中自动写好其中的main函数中例行公事的几句话。总之,几乎可以定制所有我需要预先定制的内容,从而提高写代码的效率。

我们上面记录的方法比较笼统,如果之前没有接触的话可能会比较朦胧。下面的地址中提供了一个视频教学,可能会更加容易理解:
http://msdn.microsoft.com/en-us/vstudio/bb669054.aspx
更多的相关资料:
How to: Use Wizards with Project Templates
How to: Package Community Components to Use the Visual Studio Content Installer
Visual Studio Templates
Create Reusable Project And Item Templates For Your Development Team
制作Visual Studio项目模板-阿不
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Visual Studio 中创建带有向导的项目模板 的相关文章

  • Android Studio 使用Lambda表达式「详细配置」

    前言 xff1a Lambda 表达式 xff0c 也可称为闭包 xff0c 它是推动 Java 8 发布的最重要新特性 Lambda 允许把函数作为一个方法的参数 xff08 函数作为参数传递进方法中 xff09 使用 Lambda 表达
  • Visual Studio 与Visual C++ 有什么区别

    Visual C 43 43 是 Visual Studio的一个部分 xff0c 此外还有 Visual Basic xff08 VB xff09 Visual C 等 VC 43 43 6 0 是VS6的 VC 43 43 2003 是
  • Visual Studio Code(vscode) 格式化C++代码

    前言 vscode 自带的代码格式化工具不太好用 xff0c 因此我们需要有额外的代码格式化插件进行辅助 xff0c 一般情况下都使用 clang format 格式化 xff0c 这里是对 vscode 安装和使用 clang forma
  • 记录android studio 遇到的错误和解决办法

    1 关于android studio 出现Error Execution failed for task app preDebugAndroidTestBuild 39 的解决办法 https blog csdn net fighting
  • Matlab2013b和Visual Studio 2013混合编程总结

    Matlab2013b和VisualStudio 2013混合编程总结 一 关于软件版本和安装的说明 一般来说 xff0c Matlab版本需高于或者等于VisualStudio的版本 综合版本功能和兼容问题 xff0c 我们选用了Matl
  • 解决Android Studio 安装gradle失败、很慢

    拉取新的项目工程是 xff0c 总是会遇到gradle 下载特别特别慢 xff0c 而且经常都是等了很久最终还以失败告终 这时 xff0c 我们可以使用浏览器自己去下载gradle xff0c 或者找同事要一份相同版本的gradle xff
  • Visual Studio 2022 C++ CLR 的艰难除 Bug

    请看下面一段代码 xff1a 运行结果 xff1a 这是一个Button xff0c 要用到这段代码是因为字符串出了问题 xff1a 肯定是我写的类出问题了 xff0c 便是我在控制台下测试是正常的 代码 xff1a 运行结果 xff1a
  • Visual Studio + Opencv配置

    目录 Opencv安装 环境变量配置Visual Studio 库的两种配置 本文使用操作系统为Windows10 xff0c 仅适用于windows环境Visual Studio编译器上的 Opencv开发配置 Opencv所有平台通用的
  • measurement studio测控与单片机通信上位机

    using NationalInstruments Analysis using NationalInstruments Analysis Conversion using NationalInstruments Analysis Dsp
  • 【vsCode + Arduino】在Visual Studio Code编译Arduino项目

    目录 前言一 参考文档二 操作步骤2 1 安装Arduino IDE2 2 在vsCode里安装Arduino插件2 3 配置arduino的安装路径2 4 配置好后打开一个Arduino的项目文件夹进行相应的配置 三 目前已知问题 前言
  • android studio maven 拉取代码出现 bad gateway 502

    一般都是gradle 配置的maven的仓库 问题 我这里是因为使用了 repositories google jcenter mavenCentral 新增 maven url 39 https www jitpack io 39 mav
  • 使用CMake和Visual Studio搭建工程并引入OpenCV库

    前言 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 在之前的Windows平台下OpenCV的编译与安装 Mega Li的博客 CSDN博客 nbsp 中介绍了Windows平台中使用CMake编译Open
  • 【VSCode】Visual Studio Code软件使用入门

    说明 这是一篇VS Code IDE软件使用入门文章 xff0c 工欲善其事 xff0c 必先利其器 xff0c 在使用新IDE之前 xff0c 不妨先对其进行一个全面了解 如果你做WPF等桌面端开发 xff0c 目前VSCode还没有好用
  • 【Apple Studio Display】苹果显示器无法连接Dell 5488

    Apple Studio Display 苹果显示器无法连接Dell 5488 xff08 1 xff09 Dell 5488 could not use the Apple studio display via the type c ca
  • Studio One 5机架设置一键切换效果通道

    Studio One是当前主流的直播机架软件 xff0c 操作非常方便 xff0c 但是呢默认情况下 xff0c 要切换效果时 xff0c 只能手动关闭一个效果的后 xff0c 再开另一个效果 xff0c 切换效果有点不方便 现在孤狼分享S
  • visual studio升级

    visual studio升级 概述升级步骤温馨提示 概述 有时处于开发要求或者安全要求 xff0c 需要将visual studio升级到最新的版本 本篇文章记录一下如何升级 升级步骤 1 找到visual studio的安装路径下的安装
  • 使用Visual Studio Code开发Arduino踩坑日记(持续更新)

    使用Visual Studio Code开发Arduino踩坑日记 持续更新 文章目录 使用Visual Studio Code开发Arduino踩坑日记 持续更新 1 在browse path中未找到包含文件问题描述问题分析解决思路解决过
  • Visual Studio 2022下载安装

    Visual Studio 2022下载安装 1 进入官网 官网地址 xff1a https visualstudio microsoft com 这里以Windows操作系统为例 根据需要选择版本 xff0c 我这里下载的是Enterpr
  • Ubuntu14.04 安装Android studio

    Ubuntu14 04 安装Android studio Android Studio 官方 Android IDE Android Studio 提供用于为各类 Android 设备开发应用的最快速的工具 利用世界一流的代码编辑 调试 性
  • gradle全下载

    http services gradle org distributions

随机推荐

  • openstack 异常处理

    1 xff0c keystone 验证失败 xff0c 例如 xff1a Authorization failed The request you have made requires authentication from 172 16
  • [原]C++头文件的包含顺序研究

    作者 xff1a 朱金灿 来源 xff1a http blog csdn net clever101 一 xff0e Google C 43 43 编程风格指南 里的观点 公司在推行编码规范 xff0c 领导提议基本上使用 Google C
  • 使用badblocks检测坏块

    命令格式 badblocks svw b lt 区块大小 gt o lt 输出文件 gt 磁盘装置 磁盘区块数 启始区块 典型的命令如下 写测试 数据安全 sudo badblocks n b 4096 c 16 s dev sda o h
  • Soft NMS改进的非极大值抑制方法的pytorch cuda版本,可以用

    话不多说 xff0c 直接上代码 xff0c 代码是根据soft max论文提供的代码 xff0c 修改的 xff0c 原来的代码是cpu版本 xff0c 且返回的keep参数并不是原来bbox的序列参数 xff0c 所以做了部分修改 xf
  • redis session时,sessionId作为token,可靠实现

    场景 xff1a 在一些不能使用session xff0c 或者session不能保持的情况 xff0c 通常服务器端产生一个token字符串标识用户登录状态 当前端调用后端接口时 xff0c 将此token作为参数加入到请求中 xff0c
  • 好朋友简简单单,好情谊清清爽爽,好缘份久久长长

    好朋友简简单单 xff0c 好情谊清清爽爽 xff0c 好缘份久久长长 A good friend is simple a good friendship is refreshing a good relationship lasts fo
  • LwIP raw api下使用tcp keep alive

    First we should enable this macro in lwipopts h define LWIP TCP KEEPALIVE 1 The following code is implemented after tcp
  • 阿里云API网关(9)常见问题

    网关指南 xff1a https help aliyun com document detail 29487 html spm 61 5176 doc48835 6 550 23Oqbl 网关控制台 xff1a https apigatew
  • mysql实现随机获取几条数据的方法

    sql语句有几种写法 1 xff1a SELECT FROM tablename ORDER BY RAND LIMIT 想要获取的数据条数 xff1b 2 xff1a SELECT FROM 96 table 96 WHERE id gt
  • Spring5:@Autowired注解、@Resource注解和@Service注解

    什么是注解 传统的Spring做法是使用 xml文件来对bean进行注入或者是配置aop 事物 xff0c 这么做有两个缺点 xff1a 1 如果所有的内容都配置在 xml文件中 xff0c 那么 xml文件将会十分庞大 xff1b 如果按
  • zabbix之监控redis云服务

    参考文档 xff1a http www 21yunwei com archi redis云服务的监控难点为服务部署在云上 xff0c 无法对服务进行配置等相关配置 实现方式 xff1a 编写采集脚本 gt 通过zabbix agent连接到
  • 卡方检验的自由度

    为什么80 的码农都做不了架构师 xff1f gt gt gt 自由度 xff1a 取值不受限制的变量的个数 如何理解这句简单的话呢 xff1f 给定一组数据 xff0c 我们来计算不同的统计量 xff0c 看看自由度的变化 这些数据分别为
  • Microsoft.NETCore.App 版本不一致导致的运行失败

    为什么80 的码农都做不了架构师 xff1f gt gt gt 场景重现 今天新建了一个 ASP NET Core 的项目 通过 Web Deploy 顺利发布到IIS上后 但访问时出现如下异常 异常原因 通过手动执行dotnet命令发现运
  • 2007年最值得期待的40部北美大片(争取去电影院看50%)

    1 Spider Man 3 蜘蛛侠3 导 演 xff1a 萨姆 莱米 Sam Raimi 主 演 xff1a 托比 马圭尔 Tobey Maguire Thomas Haden Church 柯尔斯滕 邓斯特 Kirsten Dunst
  • UML实例(五):在线购物系统设计类图

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 在线购物系统设计类图文档 xff1a 1 图形文档 设计类图 界面类图 2 文字说明 该部分由以下部分组成 xff1a 类图综述 类描述 类联描述 继承描述 依赖描述和其他
  • 为啥很多网站的用户端都更新了,博客园还是原来的样子呢

    重回博客园发布一些工作中的文章 xff0c 心得 xff0c 发现博客园在界面上还是跟7 8年前没啥区别 xff0c 界面经典好用 xff0c 这是不用质疑的 xff0c 但是发布内容的一些地方 xff0c 好像不像其他网站那么方便了 xf
  • ASP.NET的必须知道的东东(HttpModule,HttpHandler)

    asp net架构 一 asp net请求的处理过程 xff0d xff0d xff0d xff0d xff0d xff0d xff0d xff0d xff0d xff0d xff0d xff0d xff0d xff0d xff0d xff
  • matlab练习程序(Hilbert图像置乱)

    正好刚写了Hibert生成曲线 xff0c 不如再加一篇应用的程序 关于Hilbert图像置乱 xff0c 我在网上搜的应用领域主要集中在数字水印和图像加密上 xff0c 而这两个领域我都没怎么接触过 大部分的图像置乱都是如下图的置乱1所示
  • 深入C++“准”标准库,Boost你的力量

    最近一年我电话面试了数十位 C 43 43 应聘者 xff0c 惯用的暖场问题是 工作中使用过 STL 的哪些组件 xff1f 使用过 Boost 的哪些组件 xff1f 得到的答案大多集中在 vector map 和 shared ptr
  • Visual Studio 中创建带有向导的项目模板

    对于测试开发来说 xff0c 建立新工程的次数要远远高于专职开发人员 由于每次建立一个测试工程都要例行公事的设置一大堆属性 xff0c 例行公事的写一些同样的代码 xff0c 非常耗时 因此打算通过建立项目模板来达到自己完成的目的 比如 x