5

我一直在做一个项目,随着项目的发展,我意识到无法连接在一起的两个部分是相互依赖的。

我们将这两个部分称为 a.exe 和 b.dll。b.dll 提供了一个允许 a.exe 检索数据的实现,但我希望它是自己的独立程序集,以便可以轻松更改它以使 a.exe 与不同的数据源通信。

但是,虽然 a.exe 需要引用 b.dll,但 b.dll 需要几个函数,这些函数是 a.exe 不可分割的一部分。

由于我一直在编译——为了测试——在我编写这个项目时,a.exe 和 b.dll 都存在,我可以针对 a.exe 编译 b.dll 和针对 b.dll 编译 a.exe ,但是我将/如何从源代码重建这两个?

4

3 回答 3

5

我会将您的系统重构为三个程序集:

  • a.exe - 主 EXE 没有什么应该引用这个
  • b.dll - 正如你今天拥有的,但不引用 a.exe,它引用 c.dll
  • c.dll - 这应该包含 a 和 b 都需要引用的公共部分/部分
于 2011-12-19T18:42:14.523 回答
4

一般来说,重构它并将共享依赖项移动到它们自己的程序集(c.dll)中是一个好主意。这样,a.exe 和 b.dll 都可以引用 c.dll,这样就可以避免这种循环依赖。

于 2011-12-19T18:40:08.197 回答
2

调用csc.exe,将a.exe和b.dll的源码编译成a.exe,调用csc.exe,将b.dll的源码编译成b.dll并引用a.exe,然后调用csc.exe上次,将a.exe的源代码编译成a.exe并引用b.dll。

于 2011-12-20T19:34:40.280 回答