我有一個面向.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
文件夾。
那麼這樣的場景通常如何處理呢?