【发布时间】: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