【问题标题】:Supporting SQL Server Management objects for both SQL Server 2008 R2 and 2012 in Winforms支持 Winforms 中 SQL Server 2008 R2 和 2012 的 SQL Server 管理对象
【发布时间】:2012-11-20 20:45:16
【问题描述】:

我有一个面向 .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 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 文件夹。

那么这种情况一般是怎么处理的呢?

【问题讨论】:

    标签: winforms visual-studio-2012 assemblies .net-4.5 smo


    【解决方案1】:

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

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

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

    来源:Installing SMO - SQL Server 2012

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多