csc.exe和相互依赖的程序集

时间:2011-12-19 18:37:36

标签: c# .net csc

我一直在研究一个项目,随着它的发展,我意识到两个不能连接在一起的部分是相互依赖的。

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

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

由于我一直在编译 - 测试 - 因为我一直在编写这个项目,a.exe和b.dll都存在,我可以针对a.exe和a.exe编译b.dll b.dll,但我怎么能/可以从源代码重建这两个?

3 个答案:

答案 0 :(得分:5)

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

  • a.exe - 主要EXE没有什么可以引用此
  • b.dll - 正如您今天所拥有,但未引用a.exe,它引用了c.dll
  • c.dll - 这应包含a和b需要引用的常见部分/部分

答案 1 :(得分:4)

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

答案 2 :(得分: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。