类型'Microsoft.SqlServer.Dts.Runtime.Wrapper.ApplicationClass'没有定义构造函数

时间:2012-08-29 15:05:29

标签: c# sql .net-4.0

我最近需要将我的项目从.net 3.5升级到.net 4并连接到新的SQL Server 2008 R2。升级和编译后,它会抛出这两个错误:

无法嵌入Interop类型“Microsoft.SqlServer.Dts.Runtime.Wrapper.ApplicationClass”。请改用适用的界面。

“Microsoft.SqlServer.Dts.Runtime.Wrapper.ApplicationClass”类型没有定义构造函数

代码抛出此错误在ApplicationClass上: IDTSApplication90 app = new ApplicationClass();

我在bin文件夹中有这个dll:Microsoft.SqlServer.DTSRuntimeWrap.dll 这个dll的版本是9.0.242.0

我认为.NET 4不喜欢它。所以我要求我们的DBA在服务器中搜索此文件以查找版本10.她告诉我这个文件在sql server中不存在。

如何解决此问题?

2 个答案:

答案 0 :(得分:1)

对于2008 R2这个dll的正确版本是10.50.1600.1,我在C:\ Program Files(x86)\ Microsoft SQL Server \ 100 \ SDK \ Assemblies中得到它。尝试在那里搜索。

答案 1 :(得分:1)

根据MSDN

  

Microsoft.SqlServer.Dts.Runtime.Wrapper命名空间提供   用于在中创建控制流组件的类和接口   运行。该组件是主要的互操作组件(PIA)   命名空间Microsoft.SqlServer.Dts.Runtime,它是程序集   Microsoft.SqlServer.ManagedDTS(in   microsoft.sqlserver.manageddts.dll)。 此命名空间中的类   不应该实例化。相反,使用在中找到的类   Microsoft.SqlServer.Dts.Runtime

我认为您应该重写代码以使用Microsoft.SqlServer.Dts.Runtime命名空间中的类。来自此命名空间的Application可以实例化 - 我已经使用过它。 加载并执行包的示例,您可以找到here