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

时间:2011-07-13 13:31:33

标签: visual-studio-2008 sql-server-2008 ssis

SSIS中没有通过HTTP下载文件的标准控制流任务。我尝试了一些解决方法(Execute Process wgetScript Task HttpClientConnection),但得出的结论是,执行此任务的最强大且可重用的方法是创建自定义组件。

我尝试按照Ray Gorski's guide执行此操作,但在我的开发环境中遇到了问题。

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

我在the MSDN forum上找到了建议,说你可以通过添加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

3 个答案:

答案 0 :(得分: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下的 90 文件夹代表SQL Server 2005

Microsoft SQL Server下的 100 文件夹代表SQL Server 2008

答案 1 :(得分:3)

对SQL2012早期答案的一个小更新

DLL文件在110。

现在,即使添加引用,如果使用.Net3.5或更早的配置文件构建项目,也会出现相同的错误。

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

答案 2 :(得分:1)

安装SS2012后,脚本是在ss2008r2中开发的ssis包有描述的错误。经过几次尝试解决的尝试,我已经安装了ss2008r2 sdk,打开所有脚本并关闭,现在一切正常。

谢谢Mark