我有两个版本的第三方com库。它们在名称空间上是相同的,但是一个被构建为与X模型的设备一起使用,而另一个则与Y模型的硬件一起使用。如果我使用了错误的库,则会遇到各种运行时错误,因此尽管它们具有相同的类名和几乎相同的接口,但它们却不可互换。对于图书馆供应商而言,这是一个有问题的解决方案,但就我而言,我要么选择要么退出。
我想在一个项目中使用两个库,允许用户指定要连接的模型。应该假定最终用户在其计算机上永远不能拥有两个版本。
我已经通过重命名为Visual Studio中的项目在这两个库中添加了互操作性,但是我还需要以某种方式区分使用哪个互操作性,因此我为它们分配了别名。我为其分配了别名的第一个互操作程序不会引起任何问题,但是第二个互操作的别名始终会导致编译器错误。
未在/ reference选项中指定外部别名“ xxx” 不管我做什么,它都拒绝识别第二个别名。此外,如果我按第二个互操作的浏览器按钮中的视图对象,它将指向第一个互操作的信息,这向我暗示,Visual Studio的无限智慧将完全忽略第二个互操作。
过去,一位同事通过拆解互操作对象之一并修改名称空间来解决此问题,但我想知道是否有更好的解决方案。 谢谢您的宝贵时间。