【发布时间】:2016-06-04 03:18:25
【问题描述】:
我们是 2 个团队(2 个不同的供应商),致力于开发 2 个不同的 C# DLL。 我正在处理的第一个 DLL 必须调用另一个团队开发的第二个 DLL 中的公共函数。该函数将不是 COMVisible 函数。
我们已经就一些方法签名达成了一致。第二个 DLL 将被放置在与第一个 DLL 相同的文件夹中。
每当其他团队发布第二个 DLL 的新版本时,我只想替换文件夹中的文件,而无需重新编译我的 DLL,或使用 regasm 注册其他 DLL 等。
我应该如何编写代码来调用第二个 DLL 中的函数?最好是,如果有不使用反射的解决方案,我会更喜欢。
更多背景:
这两个 DLL 都将作为应用程序的一部分提供。我不想在第一个 DLL 中静态引用第二个 DLL,因为最后我想生成 2 个要发送的 DLL。目的是,如果稍后其他团队想要更改 DLL,他们可以在用户安装中简单地替换他们的 DLL,而无需我重新编译我的 DLL。
谢谢。
【问题讨论】:
-
如果您知道 DLL 名称,为什么不直接引用它?
-
如果我引用,并且第二个 DLL 稍后更改,.NET 会自动调用同一文件夹中更新的 DLL 吗?抱歉,我以前从未这样做过
-
只要 api 未更改且未签名,您就可以简单地替换引用的 dll。
-
@Crowcoder,.NET 框架如何寻找第二个 DLL。它总是在第一个 DLL 所在的文件夹中首先出现吗?
-
只需在 .csproj 文件中引用它即可。