无法编译SSIS组件;在Visual Studio 2008中缺少程序集

7

在SSIS中没有标准的控制流任务用于通过HTTP下载文件。我尝试了一些变通方法(执行进程wget, 脚本任务HttpClientConnection),但得出的结论是,最强大且可重用的方法是创建自定义组件。

我尝试按照Ray Gorski的指南进行操作,但在我的开发环境中遇到了问题。

问题是Visual Studio 2008无法识别Microsoft.SqlServer.Dts命名空间。它会报错,并显示错误消息:“名称空间'Microsoft.SqlServer'中不存在'Dts'类型或命名空间(是否缺少程序集引用?)”。

我在MSDN论坛上找到了一些建议,说可以通过添加程序集ManagedDTS.dll来添加引用,该文件位于C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies\中,但是我的系统上不存在此目录。我认为这是因为我使用的是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


谢谢链接,Siva。目前使用 HTTPClientConnection 是可行的,因为我设计的两个程序包只需要从一个文件中下载所有数据。但是有些其他的程序包需要进行多次 HTTP 请求来提取所有数据,所以我将考虑使用 WebClient 来完成这个任务。 - Iain Samuel McLean Elder
3个回答

8
在64位操作系统上,您可以在以下路径中找到文件Microsoft.SQLServer.ManagedDTS.dll:
C:\Program Files (x86)\Microsoft SQL Server\100\SDK\Assemblies
在32位操作系统上,您可以在以下路径中找到文件Microsoft.SQLServer.ManagedDTS.dll:
C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies
Microsoft SQL Server下的文件夹90代表SQL Server 2005。
Microsoft SQL Server下的文件夹100代表SQL Server 2008。

谢谢,Siva。我正在运行一个64位操作系统和64位的SQL Server 2008版本。 - Iain Samuel McLean Elder
2
我知道这个问题已经存在很长时间了,但如果你在那些路径中查找并且库不存在,就启动SQL Server安装光盘并安装SDK。我们今天遇到了这个问题。 - Mark
1
通过安装光盘重新安装客户端工具SDK对我很有效。 - user499054
完整名称为“客户端工具 SDK”,位于:安装 -> 新安装或添加功能 -> ... -> 功能选择 -> 客户端工具 SDK。 - woodvi

3

关于之前针对SQL2012的回答,进行了小幅更新。

DLL文件在110中。

即使添加了引用,在使用.Net3.5或更早版本框架构建项目时仍会出现相同的错误。

对于SQL2012,必须使用.Net4.0或更高版本,否则Visual Studio将显示相同的错误。


1
安装SS2012后,使用SS2008R2开发的脚本中出现了所描述的错误。经过多次尝试解决后,我安装了SS2008R2 SDK,打开所有脚本并关闭,现在一切正常。
谢谢Mark。

对我有帮助。非常感谢。 - Igor Borisenko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接