前文回顾:
在Visual Studio 2010中创建多项目(解决方案)模板【一】:多项目解决方案模板的创建
在Visual Studio 2010中创建多项目(解决方案)模板【二】:Template Wizard的使用
本文主要讨论多项目(解决方案)模板的部署相关问题,包括:
- 为多项目解决方案模板设置模板名称
- 修改多项目解决方案模板的图标
- 创建Visual Studio 2010扩展的安装包VSIX文件
为多项目解决方案模板设置模板名称
模板名称的设置非常简单,,只需要修改CMSProjectTemplate.vstemplate文件中的Name XML节点的内容即可。例如,我们可以为我们的模板起名为:Customer Management System Solution:
<Name>Customer Management System Solution</Name>
修改多项目解决方案模板的图标
模板图标的修改也非常简单,在文件系统中找一个ICO的图标文件,将CMSProjectTemplate项目目录下的CMSProjectTemplate.ico文件替换掉即可。例如我使用下面的图标作为模板的图标:
现在编译CMSProjectTemplate项目,并将产生的ZIP文件拷贝到Visual C#的ProjectTemplate目录下,重新打开New Project对话框,我们可以看到下面的效果:
创建Visual Studio 2010扩展的安装包VSIX文件
现在,我们可以使用VSIX来为最终用户提供一个安装项目模板的安装包,到时候用户只需要双击这个VSIX文件即可将所需的项目模板以插件的形式安装到Visual Studio中。
首先,在CMSProjectTemplate解决方案中,新建一个VSIX Project的项目,我们取名为CMSProjectTemplateVSIX:
在source.extension.vsixmanifest文件的设计界面,设置如下属性:
- Product Name:Customer Management System Project Template
- Author:<填写你自己的姓名,或者公司名>
- Description:<填写一些描述信息>
其它内容你可以选填,至于License Terms,你可以找一个txt或者rtf文件,用来描述许可协议。填写完后,设计界面大致如下:
然后,在设计界面的Content部分,单击Add Content按钮,此时将弹出Add Content对话框,在Select a content type下拉框中,选择Project Template,在Select a source选项中选择CMSProjectTemplate项目,然后单击OK按钮:
用相同的方法,添加Template Wizard:
完成这两项内容的添加以后,设计界面的Content部分大致如下:
OK,现在保存并编译CMSProjectTemplateVSIX项目,完成编译之后,我们在输出目录中找到了VSIX文件:
双击CMSProjectTemplateVSIX.vsix文件,将出现如下对话框:
单击Install按钮完成Visual Studio 2010扩展的安装。安装完成后,重新启动Visual Studio 2010,点击Tools –> Extension Manager菜单,我们可以在打开的Extension Manager对话框中找到刚刚安装的扩展包:
用户可以根据自己的需要对其进行禁用或者卸载。
总结
本系列文章从一个案例解决方案开始,逐步介绍了如何使用Visual Studio 2010 SDK来创建一个多项目的解决方案模板项目,并介绍了其中的一些高级应用。希望这样的文章能够真正地帮助到有这方面需求的读者朋友。
本文案例下载
CMSProjectTemplate(完整版)
参考文献
- Creating and Sharing Project & Item Templates:http://blogs.msdn.com/b/visualstudio/archive/2010/03/04/creating-and-sharing-project-item-templates.aspx
- How to: Create Multi-Project Templates: http://msdn.microsoft.com/en-us/library/ms185308.aspx
- Can't Avoid the ProjectGuid from Being Changed in .csproj File:http://social.msdn.microsoft.com/Forums/en-US/csharpide/thread/1d632940-cc1d-49d5-a64c-d3e999216cbd
- VSPackage: Force a project to unload then reload:http://social.msdn.microsoft.com/Forums/en/vsx/thread/49f69447-951a-4a9c-9c69-9a821f2a367c
- Multi-Project Templates with Wizard: Visual Studio 2010 Sample:http://vsix.codeplex.com/