2010-01-18 58 views
5

使用SQL 2008的10.0.0.0版本的SMO的程序集准备了一个manged c#DLL,并且我从一个unmanged C++代码调用了此DLL中的函数。此应用程序已成功运行SQL Server 2008,但此应用程序在运行SQL Server 2005时出现异常,如下所示:对sql 2005和sql 2008的SMO代码支持

说明:无法加载文件或程序集“Microsoft.SqlServer.Smo,Version = 10.0.0.0, Culture = neutral,PublicKeyToken = 89845dcd8080cc91'或它的一个依赖项。该系统找不到指定的文件。

会是什么原因?
由于SMO的版本错误,它在sql 2005中失败了吗?
如何在我的应用程序中使用单个C#dll支持sql 2005和sql2008?

+0

它看起来是因为版本不匹配的失败 - 我也有这个问题,很想知道答案! – justinlatimer 2010-01-18 05:53:45

回答

3

我以前遇到过同样的问题,您是否在安装了2008和2005的计算机上运行此应用程序?

如果不是,我建议您在运行程序集的机器/客户机上安装Sql 2008的SMO库。

This download will give you the libraries

+0

该应用程序内置于具有sql 2008和iam的计算机上,并在具有sql2005的另一台计算机上运行此应用程序。我将安装此下载并更新结果。谢谢 – user186246 2010-01-18 06:28:39

+0

安装SMO 2008后,应用程序在具有SQL 2005的计算机上成功运行。但无法准备使用SMO的应用程序 - 同时支持sql2005和sql2008? – user186246 2010-01-18 07:01:20

+0

您的应用程序'does'支持2005和2008,但由于您构建的应用程序引用了Sql 2008的程序集,因此您只需要在'client'机器上安装2008库。 – 2010-01-18 07:19:46