在Winforms中支持SQL Server 2008 R2和2012的SQL Server管理对象

在Winforms中支持SQL Server 2008 R2和2012的SQL Server管理对象,winforms,visual-studio-2012,assemblies,.net-4.5,smo,Winforms,Visual Studio 2012,Assemblies,.net 4.5,Smo,我有一个针对.NET4.5的Windows窗体应用程序。该应用程序提供了使用SQL Server管理对象(SMO)进行编程数据库备份和恢复的功能 该应用程序应同时支持SQL Server 2008 R2和SQL Server 2012的Express Edition,因为它只使用这两个版本中支持的功能 现在,要在项目中引用的SMO程序集(Microsoft.SqlServer.ConnectionInfo、Microsoft.SqlServer.SMO、Microsoft.SqlServer.S

我有一个针对.NET4.5的Windows窗体应用程序。该应用程序提供了使用SQL Server管理对象(SMO)进行编程数据库备份和恢复的功能

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

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

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
如您所见,当客户端运行2008 R2时,程序集将位于
100\SDK
文件夹中,而对于那些希望运行SQL Server 2012的程序集,它们将位于
110\SDK
文件夹中

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


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

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

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

如果要确保在运行应用程序的计算机上安装SQL Server管理对象,可以使用SQL Server功能包中的Shared Management Objects.msi

资料来源:

按照带下划线的段落,我想无论运行的是哪个sql server版本,我都可以在客户端机器上安装公共共享管理对象msi