[VS2010]引用Microsoft.SqlServer.ManagedDTS

[VS2010]引用Microsoft.SqlServer.ManagedDTS

或許大家看到這標題可能會很疑惑,引用相關參考這種小兒科也能寫一篇(旁邊的人小聲的說:我在娘胎就會了...),

但也因為使用VS2010無法那麼順利引用Microsoft.SqlServer.ManagedDTS,

剛好也順便讓我了解了GAC目錄結構,自己紀錄一下。

 

因工作上的需要,我可能需要使用 ASP.NET 來呼叫 SSIS,

雖然早在之前自己有使用VS2008開發並(參考Excecute SSIS package (DTSX) from ASP.Net)順利達陣,

本想升級之前舊有VS2008專案為VS2010,但該專案不知道被我丟那裏去了(...悶),

由於自己電腦只剩下VS2010 IDE,所以只好使用VS2010來開發,

但當我打算引用 Microsoft.SqlServer.ManagedDTS  參考時卻怎麼也找不到

也就會出現如下錯誤

image

image

 

如果你有安裝 SQL2005 那你可以在以下路徑找到這個 dll 檔案

C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies

 

但如果你像我一樣,本機只安裝SQL2008,那你可能需要在以下路徑來取得該檔案

C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.ManagedDTS\10.0.0.0__89845dcd8080cc91

image

 

屬性如下

image

你可以看到執行階段版本:V2.0.50727。

 

或許你會擔心沒有上述目錄,但請不要擔心,因為一個比較完整.NET Framework 2.0的 GAC目錄結構應如下圖

image

也順便讓我來簡單說說這些目錄的Assemblies有什麼不同:

 

GAC:

存放基於.NET Framework 1.0/1.1建立的Assemblies,這些Assemblies只能在 32-bit 系統上執行。

 

GAC_32:

存放基于.NET Framework 2.0建立的Assemblies(x86架構),因為這些Assemblies擁有 32-bit 的 Native CPU Code,

所以只能在 32-bit 系統上執行,或者使用WOW64技術(讓64-bit 系統可以模擬執行32-bit  Application )在 64-bit 系统上執行。

 

GAC_64(這目錄在32bit系統上不存在):

存放基於.NET Framework 2.0建立的Assemblies(x64 or IA64),这些Assemblies可能含有x64或者IA64的Native CPU Code,

所以只能在 64-bit 系統上執行,在這目錄中的Assemblies是依據系統架構決定的(如果是x64系統,這目錄就無法安裝IA64的Assemblies)。

 

GAC_MSIL:

存放基於 .NET Framework 2.0無特定CPU架構的Assemblies,這些Assemblies可以在 32bit 或 64bit 系統上執行。

 

而其他NativeImages開頭的目錄,都是存放透過NGen.exe(原生映像產生器)編譯的Assembly(符合目前系統的 Unmanaged Code),

這目錄不需要Strong Name Assemblies(強式命名的組件),後面所接的目錄名稱分別是版本和系統平台。

 

 

 

 

參考

Ngen.exe (原生映像產生器)

全域組件快取

Common Language Runtime 中的組件