2

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

无法嵌入互操作类型“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中不存在。

我该怎么做才能解决这个问题?

4

2 回答 2

1

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

于 2012-08-29T15:40:03.057 回答
1

根据MSDN

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

我认为您应该重写代码以使用Microsoft.SqlServer.Dts.Runtime命名空间中的类。来自这个命名空间的应用程序可以被实例化——我已经使用过了。您可以在此处找到加载和执行包的示例。

于 2012-08-29T16:43:50.243 回答