我有使用Microsoft.SqlServer.Management.Smo的代码。 (内置于Visual Studio 2005 SP1) 它适用于SQL 2000& SQL 2005机器。 但是当它在SQL 2008机器上运行时会引发异常:
System.IO.FileNotFoundException:无法加载文件或程序集“Microsoft.SqlServer.Smo,Version = 9.0.242.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91”或其依赖项之一。该系统找不到指定的文件。 文件名:'Microsoft.SqlServer.Smo,Version = 9.0.242.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91'
=== 日志:此绑定在默认加载上下文中启动。 日志:找不到应用程序配置文件。 日志:使用C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ config \ machine.config中的计算机配置文件。 日志:策略后引用:Microsoft.SqlServer.Smo,版本= 9.0.242.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91 日志:尝试下载新的URL文件:/// C:/ Documents and Settings / Automation / Desktop / Debug / Microsoft.SqlServer.Smo.DLL。 日志:尝试下载新的URL文件:/// C:/ Documents and Settings / Automation / Desktop / Debug / Microsoft.SqlServer.Smo / Microsoft.SqlServer.Smo.DLL。 日志:尝试下载新的URL文件:/// C:/ Documents and Settings / Automation / Desktop / Debug / Microsoft.SqlServer.Smo.EXE。 日志:尝试下载新的URL文件:/// C:/ Documents and Settings / Automation / Desktop / Debug / Microsoft.SqlServer.Smo / Microsoft.SqlServer.Smo.EXE。
我已经安装了SQL 2005向后兼容包(针对SQL 2008更新)& SQL管理对象(针对SQL 2008进行了更新)
任何建议。
我经历了SQL Server SMO complains of missing DLL但没有多少帮助。
答案 0 :(得分:3)
我发现了这个问题。我正在构建项目,引用了SQL 2005 SDK DLL。我删除了所有参考文献&再次添加引用(现在指向SQL 2008 dll视图post:http://msdn.microsoft.com/en-us/library/ms162129.aspx)以获取要添加的引用列表。 此外,目标计算机需要具有Microsoft SQL Server 2005向后兼容性组件& Microsoft SQL Server 2008管理对象&安装了SQL Server系统CLR类型(2008)。
答案 1 :(得分:0)
查看Microsoft SQL Server 2008 Feature Pack, April 2009的“Microsoft SQL Server 2008管理对象”部分(确保安装了SQL Server 2008 Service Pack 1)
答案 2 :(得分:0)
不确定这是否已解决,但听起来像原始海报将dll的“特定版本”属性设置为“True”。
要解决此问题,请在References文件夹中选择引用,并将“Specific Version”属性设置为true。
Microsoft确实将某些功能移至Microsoft.SMO.Extended,但这是一个单独的问题