瞭解GAC:從“找不到Microsoft.SqlServer.SqlClrProvider.dll”的問題開始

來源:互聯網
上載者:User

標籤:sqlserver smo micros

瞭解GAC:從“找不到Microsoft.SqlServer.SqlClrProvider.dll”的問題開始                            老帥   先,看真相,如下:

一、問題描述   我使用Microsoft.SqlServer.Smo開發了一個資料庫管理工具,根據定製的需求,完成對SQLServer的管理。部署到客戶機以後,就提示上述錯誤。而這個檔案在我本機上使用全盤搜尋,無論如何也搜尋不到。
二、追根溯源   經過研究,發現這個檔案是SQLServer2012的一個運行時支援庫,存在於SQLSysClrType.msi中,如下:   http://www.microsoft.com/zh-cn/download/details.aspx?id=43339
  
   包含x86和x64兩個版本,請根據自己的需要使用。


三、使用方法

   當然,我們可以把SQLSysClrType.msi安裝到客戶機中使用,其實我們只需要這個動態庫檔案而已:

   Microsoft.SqlServer.SqlClrProvider.dll   事實上只需要把這個檔案和我們的exe一起部署到客戶機即可,但是安裝完SQLSysClrType.msi之後,我們在本機上仍然搜尋不到這個動態庫。   原來這個檔案安裝在系統的GAC中!!!

   什麼是GAC?   微軟為提高系統安全,自Vista推出後,在Windows系統中加入了一個新的東東——UAC(User Account Control),這樣一個新的技術使得許多操作都受到了約束,尤其是對系統設定、檔案的修改,Win7作為一個衍生品,也受到了UAC的保護。   在.NET項目開發中,針對一些類庫項目或使用者控制項項目,當程式開發完成後,有時需要將開發的程式集,安裝部署到GAC(Global Assembly Cache)中,以便其他的程式也可以調用。   通常,將程式集安裝到GAC有兩種方法:   1、將程式集(dll檔案)手動拖至 C:/Windows/assembly 檔案夾中。   2、利用命令列或者全域組件快取工具Gacutil進行安裝。

   原來如此!
   GAC的目錄在c:\windows\assembly, 而這個目錄是不允許你直接複製粘貼的,只能使用命令列,你會發現GAC的目錄結構與Windows Explorer展示給你的看的目錄不同:


   為了把檔案拿出來, 你需要使用命令列:
        這樣就可以拿到你需要的動態庫了!!! 


瞭解GAC:從“找不到Microsoft.SqlServer.SqlClrProvider.dll”的問題開始

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.