前文回顧:
在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/