VS2010不能编译SQLServer2005的Microsoft.SQLServer.ManagedDTS.dll的解决方法

VS2010不能编译SQLServer2005的Microsoft.SQLServer.ManagedDTS.dll是最近碰到的一个疑难杂症问题,通过查询微软社区和一些英文资料找到了解决方法,同事说之前没有找到中文的,就整理了放在这里。

现象

项目里需要使用程序创建SSIS包,结果在VS2010里可以添加Microsoft.SQLServer.ManagedDTS.dll引用,写代码也有智能提示,但是一编译就告诉你引用不正确。有个警告里提示“ warning MSB3258: The primary reference "Microsoft.SQLServer.ManagedDTS, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL" could not be resolved because it has an indirect dependency on the .NET Framework assembly "mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which has a higher version "2.0.3600.0" than the version "2.0.0.0" in the current target framework.”

原因

根据微软社区和一些英文资料介绍,这是微软的一个bug,原因为 Microsoft.SQLServer.msxml6_interop.dll引用了.net framework 2.0 的beta版。

解决方法

2.打开 C:\Program Files\Program Files\Microsoft SQL Server\90\DTS\Binn,覆盖Microsoft.SQLServer.msxml6_interop.dll.
3.强制更新GAC里的dll文件。启动命令行:拷贝以下命令执行:
SUBST x: c:\windows\assembly\GAC_MSIL\Microsoft.SqlServer.msxml6_interop\6.0.0.0__89845dcd8080cc91
4.系统多一个X盘,点开X盘,覆盖Microsoft.SQLServer.msxml6_interop.dll.
5.subst x: /d 删除X盘。
上一篇:(转载)SQL联合查询中的关键语法


下一篇:gdb 内存查看