2010-01-18 65 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