2012-12-03 137 views
2

我有一個面向.NET 4.5的Windows窗體應用程序。該應用程序提供了使用SQL Server管理對象(SMO)進行編程式數據庫備份和恢復的功能。在Winforms中支持SQL Server 2008 R2和2012的SQL Server管理對象

應用程序應該支持SQL Server 2008 R2和SQL Server 2012的Express版本,因爲它只使用兩個版本都支持的功能。

現在SMO組件(Microsoft.SqlServer.ConnectionInfo, Microsoft.SqlServer.Smo, Microsoft.SqlServer.SmoExtended等)的項目中引用會在不同的文件夾取決於客戶端安裝

SQL Server Express 2008 R2: C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies 

SQL Server Express 2012: C:\Program Files\Microsoft SQL Server\110\SDK\Assemblies 

正如你可以看到SQL Server的版本,當客戶端運行2008 R2時,程序集將在100\SDK文件夾下,而對於那些想要運行SQL Server 2012的程序集,它們將位於110\SDK文件夾中。

因此,如果我參考100\SDK文件夾,則運行SQL Server 2012的客戶端應用程序將中斷,因爲它們只有110\SDK文件夾。

那麼這樣的場景通常如何處理呢?

回答

3

如果要開發使用SQL Server管理對象(SMO)的應用程序,則應在安裝SQL Server時選擇Client Tools SDK。

要安裝Client Tooks SDK而不安裝SQL Server,請安裝SQL Server功能包中的共享管理對象。

如果要確保將運行應用程序的計算機上安裝了SQL Server管理對象,則可以使用SQL Server功能包中的共享管理對象.msi。

來源:Installing SMO - SQL Server 2012

中帶有下劃線的段落去,我想我可以隨時安裝一個共享管理對象微星跨客戶機不論SQL Server版本正在運行的。

相關問題