在 Winforms 中支持 SQL Server 2008 R2 和 2012 的 SQL Server Manage



我有一个面向.NET 4.5的Windows表单应用程序。该应用程序提供使用 SQL Server 管理对象 (SMO) 进行编程数据库备份和还原的功能。

应用程序应同时支持 SQL Server 2008 R2 和 SQL Server 2012 的 Express 版本,因为它仅使用两个版本中都支持的功能。

现在,要在项目中引用的 SMO 程序集(Microsoft.SqlServer.ConnectionInfo, Microsoft.SqlServer.Smo, Microsoft.SqlServer.SmoExtended等)将位于不同的文件夹中,具体取决于客户端已安装的 SQL Server 版本

SQL Server Express 2008 R2: C:Program FilesMicrosoft SQL Server100SDKAssemblies
SQL Server Express 2012: C:Program FilesMicrosoft SQL Server110SDKAssemblies

如您所见,当客户端运行 2008 R2 时,程序集将位于 100SDK 文件夹中,而对于想要运行 SQL Server 2012 的程序集,它们将位于110SDK文件夹中。

因此,如果我引用100SDK文件夹,则运行 SQL Server 2012 的客户端的应用程序将中断,因为它们只有110SDK文件夹。

那么这种情况通常是如何处理的呢?

如果要开发使用 SQL Server 管理对象 (SMO) 的应用程序,则应在安装 SQL Server 时选择客户端工具 SDK。

若要在不安装 SQL Server 的情况下安装 Client Tooks SDK,请从 SQL Server 功能包安装共享管理对象。

如果要确保将运行应用程序的计算机上安装 SQL Server 管理对象,则可以使用 SQL Server 功能包中的共享管理对象.msi。

来源: 安装 SMO - SQL Server 2012

按照带下划线的段落,我想我总是可以在客户端计算机上安装一个通用的共享管理对象 msi,而不管运行的 sql 服务器版本如何。

最新更新