如何在 Visual Studio/c# 中添加对同一 API 的两个版本的引用

本文关键字:API 引用 版本 两个 Studio Visual 添加 | 更新日期: 2023-09-27 17:55:50

我有一个依赖于外部程序的项目,这个外部程序有一个API,实际上它有大约17个不同的API,在2000-2017版本中都略有不同。现在在这 17 个版本中,我想支持其中的大约 5 个。(2012-2017),但有一些功能是2012年的,后来在2017年更名。

现在好消息是,我可以简单地确定给定用户正在使用的程序版本,并且可以使用对不同版本的 API 的引用来调用任何共享函数 (90%+)。但是,我需要剩余的10%功能中的一些。因此,我需要包含对多个 API 的引用,以便我的程序将编译,然后在运行时选择它接收的版本。

现在我尝试的是进入视觉工作室(2015 年社区版本),并添加对其中几个的引用。但是,当我尝试添加第二个引用时,我收到一条错误消息:a reference to [API.dll] could not be added a reference to the component [API.dll] already exists in project.

我希望使用的方法是这样的,如果具有给定名称的函数存在于

其中一个版本中,它应该绑定到该版本,如果给定的函数名称存在于多个 API 中,那么它应该绑定到最新版本。知道怎么做吗?也许使用 extern 别名关键字的东西?我看了如何引用两个版本的 API?接受的答案行不通,但第二个答案可能,任何能够解释该答案是否有效以及如果是,如何正确完成的人?

如何在 Visual Studio/c# 中添加对同一 API 的两个版本的引用

基本上,不允许添加多个具有相同名称的引用。

如果您是程序集所有者,则必须更改清单中的文件名以生成具有不同名称的 DLL。

还可以在配置文件中管理程序集版本或在运行时加载。

我的建议是将所有 DLL 合并到一个文件中。您可以使用 ILMerge 来执行此操作。