我正在编写一个需要SQL Server SMO库的.NET工具.我不在乎它是Server 2005(9.0),2008(10.0)还是2008 R2(可能是10.5,没有检查)的版本.SMO库与SQL Server一起安装,因此我可以放心地假设在安装了SQL Server的任何系统上,也可以使用某些版本的SMO库.
不幸的是,SMO库名称很大:如果我在项目中添加对SMO 9.0的引用,FileNotFoundException如果客户系统上只有SMO 10.0 ,则会失败(),反之亦然.
有没有办法告诉编译器任何版本的库对我来说都没问题?或者我是否真的必须分发3个相同版本的工具,每个版本都编译为不同版本的SMO?
免责声明:我知道可以重新分发SMO库(以及SMO库所需的库).但是(a)一个超薄的100KB独立EXE和(b)安装了大量先决条件的完整安装包之间存在很大差异.
免责声明2:我知道以下重复:
但是,所提供的解决方案并不合适.在问题1中,开发人员可以控制引用的DLL(我没有); 在问题2中,开发人员可以控制目标系统(我也没有).