亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

SSMS2008插件開發(fā)(3)--部署調(diào)試SSMS2008插件

系統(tǒng) 2824 0
原文: SSMS2008插件開發(fā)(3)--部署調(diào)試SSMS2008插件

  上一次說到VS2008中的插件開發(fā),最終結(jié)果插件是部署在VS2008中,現(xiàn)在我們將插件部署到SSMS2008(Microsoft Sql Server Management Studio 2008)中。可以參考一下 這里

  打開上一次的項目MySSMSAddin,右“解決方案資源管理器”中右擊該項目,選擇“屬性”,進(jìn)入該項目的屬性設(shè)置界面。在“應(yīng)用程序”選項卡中,將“程序集名稱”改為“MySSMSAddin”,這不是必須的,但我習(xí)慣程序集名稱與項目名稱相同。

  在“生成”選項卡中,選中“為COM互操作注冊”。這樣才可以向注冊表中注冊我們寫的DLL文件。另外一個方法是增加一個安裝項目,由安裝項目來注冊。

  在“調(diào)試”選項卡中,將“啟動外部程序”那項的內(nèi)容改為SSMS可執(zhí)行文件,該文件在SQL2008的安裝目錄中的100\Tools\Binn\VSShell\Common7\IDE中的Ssms.exe,要包含路徑,我的機器是“C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe”。將“命令行參數(shù)”中的內(nèi)容清空。將“工作目錄”設(shè)置為SSMS.EXE所在目錄,我的機器是“C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\”。

  添加一些操作SSMS需要用的類庫(DLL文件),SQL安裝目錄(C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE)中的SqlWorkbench.Interfaces.dll和Microsoft.SqlServer.SqlTools.VSIntegration.dll。

  在注冊表中增加如下圖內(nèi)容,SSMS所有的插件都需要在Addins中注冊(如果沒有Addins請自行添加),其中MySSMSAddin.Connect是插件的全名稱,前面表示命名空間,后面表示類名。LoadBehavior為雙字節(jié)值(DWORD)。下圖中的內(nèi)容也可以添加在HKEY_CURRENT_USER中,不過這樣的話插件就只能由當(dāng)前用戶使用,對其他用戶不可見。

SSMS2008插件開發(fā)(3)--部署調(diào)試SSMS2008插件

  此時如果打開SSMS2008,會發(fā)現(xiàn)報錯,因為我們的DLL并沒有進(jìn)行注冊,要注冊很簡單,編譯一下我們的項目(MySSMSAddin)就可以,但是編譯后再打開SSMS2008仍然會報錯,這是因為獲取SSMS2008的APPLICATION(DTE)對象和VS2008中的不一樣。

  打開Connect.cs,找到OnConnection方法的,將第一行的內(nèi)容

    		public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)

		{

			_applicationObject = (DTE2)application;
  

  改成

    		public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)

		{

                       _applicationObject = (DTE2)ServiceCache.ExtensibilityModel;
  
  注意,需要引用命名空間using Microsoft.SqlServer.Management.UI.VSIntegration;

  此時,運行程序,發(fā)現(xiàn)VS2008自動運行SSMS2008,并且沒有任何錯誤,但是工具菜單中并沒有找到“Test Menu“這個菜單項。這是因為SSMS2008加載插件的時候,其狀態(tài)并不是ext_ConnectMode.ext_cm_UISetup而是ext_ConnectMode.ext_cm_Startup(關(guān)于ext_ConnectMode枚舉的說明請參考 這里 ),將OnConnection方法中的代碼

               if(connectMode == ext_ConnectMode.ext_cm_UISetup)
  
  改成
               if (connectMode == ext_ConnectMode.ext_cm_Startup)
  
  現(xiàn)在運行程序,會發(fā)現(xiàn)SSMS2008的工具菜單中出現(xiàn)了我們定義的菜單,并且點擊也會彈出“Hello World”。效果如下圖:

SSMS2008插件開發(fā)(3)--部署調(diào)試SSMS2008插件

  關(guān)于調(diào)試:要調(diào)試SSMS的插件,就和正常的代碼一樣,在需要的地方增加斷點即可。

  下一次將會詳細(xì)介紹SSMS2008中增加菜單、訪問各種對象的方法。

  這次的相關(guān)DEMO項目在 我的資源中


SSMS2008插件開發(fā)(3)--部署調(diào)試SSMS2008插件


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久er国产精品免费观看2 | 欧美二区三区 | 久久香蕉综合色一综合色88 | 亚洲欧洲一区二区 | 亚洲精品一区二区三区四区手机版 | 国产精品毛片天天看片 | 亚洲综合在线一区 | 免费国产午夜高清在线视频 | 欧美性禁片在线观看 | 毛片免 | 青青久草| 99热久久精品首页 | 中文字幕一区二区三区视频在线 | 欧美亚洲国产激情一区二区 | 天天色天天草 | 久久一区二区三区不卡 | 91成人午夜性a一级毛片 | 99在线播放视频 | 久久99热只有视精品6国产 | 久久国产欧美日韩精品 | 精品久久久久久中文字幕女 | 免费一级特黄3大片视频 | 成人毛片免费观看视频 | 神马影院伦理我不卡 | 久久亚洲精品中文字幕二区 | 97影院九七影院理论片 | 国产三级精品三级男人的天堂 | 四虎视频国产精品免费入口 | 欧美亚洲一区二区三区 | 偷拍清纯高清视频在线 | 久久视频免费在线观看 | 成人看免费一级毛片 | 久久久国产视频 | 福利视频区 | 91亚洲国产成人久久精品网址 | 日韩欧美亚| 成人国产在线看不卡 | 在线观看国产一区二区三区99 | 久久不射网站 | 婷婷色在线观看 | 99热视屏 |