2011-07-13 22 views
5

SSIS中沒有用於通過HTTP下載文件的標準控制流任務。我嘗試了一些解決方法(Execute Process wget,Script Task HttpClientConnection),但得出的結論是,執行此任務的最健壯且可重用的方法是創建自定義組件。無法編譯SSIS組件;在Visual Studio 2008中丟失程序集

我試圖通過以下Ray Gorski's guide來做到這一點,但在我的開發環境中遇到了問題。

問題是Visual Studio 2008不能識別Microsoft.SqlServer.Dts命名空間。它抱怨錯誤消息「名稱空間'Microsoft.SqlServer'中不存在類型或命名空間名稱'Dts'(你是否缺少程序集引用?)」。

我在the MSDN forum上發現了一條建議,說您可以通過添加在C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies\中找到的程序集ManagedDTS.dll來添加參考,但該目錄在我的系統中不存在。我認爲這是因爲我正在使用SQL Server 2008而不是SQL Server 2005.

如何解決此問題?

這是我的代碼,它基於Ray Gorski的指南中的示例。這裏沒有任何代碼可以完成我的任務,只是一個空的存根,不能編譯。

using System; 
using Microsoft.SqlServer.Dts.Runtime; 
using Microsoft.SqlServer.Dts.Runtime.Design; 

namespace HTTPControlTask 
{ 
    [DtsTask(
     Description = "HTTP", 
     DisplayName = "HTTP", 
     TaskContact = "Iain Elder", 
     TaskType = "SSIS Help Task", 
     RequiredProductLevel = DTSProductLevel.None)] 
    public class HTTPControlTask : Task, IDTSComponentPersist 
    { 
    } 
} 

下面是錯誤截圖我看到,當我嘗試編譯:

enter image description here

+0

感謝您的鏈接,西瓦。現在使用'HTTPClientConnection'很好,因爲我設計的兩個軟件包只從一個文件下載所有的數據。但還有一些其他軟件包必須提出多個HTTP請求才能提取所有數據,因此我將考慮使用WebClient來完成此任務。 –

回答

7

64-bit操作系統,你可以找到該文件Microsoft.SQLServer.ManagedDTS.dll以下路徑:

C:\Program Files (x86)\Microsoft SQL Server\100\SDK\Assemblies

32-bit操作系統,您可以在以下路徑找到該文件Microsoft.SQLServer.ManagedDTS.dll

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

下的Microsoft SQL Server文件夾代表SQL Server 2005

Microsoft SQL Server下的文件夾代表SQL Server 2008

+0

謝謝,Siva。我正在運行64位操作系統和SQL Server 2008的64位版本。 –

+2

我知道這是很長一段時間關閉的,但如果您查看這些路徑並且庫不在那裏,請啓動SQL Server安裝磁盤並安裝SDK。我們今天遇到了這個問題。 – Mark

+1

通過安裝盤重新安裝客戶端工具SDK爲我工作。 –

3

在剛纔的答覆爲SQL2012

DLL文件只是一個小更新是在110

現在將基準之後,即使你建立與.NET3.5你的項目,你會得到同樣的錯誤或舊的配置文件。

對於SQL2012,您必須使用.Net4.0或更高版本Visual Studio會向您顯示相同的錯誤。

1

安裝SS2012之後,腳本是在ss2008r2中開發的ssis軟件包所描述的錯誤。在嘗試解決幾個試驗後,我已經安裝了ss2008r2 sdk,打開所有腳本並關閉,現在一切正常。

謝謝馬克

+0

爲我工作。非常感謝。 –

相關問題