Visual Studio参考项目/ Dll

时间:2013-03-18 16:34:06

标签: .net winforms visual-studio architecture reference

如果我在订单中有一个项目列表。

1. Commons
2. DAL
3. BAL
4. WebUI

在上面的项目中,引用应该以这种方式发生。

DAL refer's to Commons.
BAL refer's to DAL.
WebUI refer's to BAL.

那么,当我从 WebUI 访问 BAL 的方法时,为什么会出现错误,该方法会返回 Commons中定义的对象。因为,在项目依赖中,WebUI依赖于所有三个项目。但是为了方便起见,我不想在WebUI项目中包含Common,BAL,DAL的引用。但是我想要它应该自动包含所有依赖项目的引用(如果有的话)。

任何人都可以帮我解决如何摆脱Visual Studio的这种意外行为。

2 个答案:

答案 0 :(得分:4)

如果WebUI使用<{1}}中定义的任何类型,那么Commons项目必须作为参考到Commons项目。即使该类型被用作在WebUI项目正在使用的不同程序集(即BAL)中声明的方法的返回类型。

真的没办法解决这个问题。

答案 1 :(得分:1)

引用项目中的DLL不包括(复制)DLL的代码到项目中。如果BALCommons中定义的对象返回到WebUI,那么WebUI将需要对Commons的引用,以便它知道要返回的类型。

如果您想要解决此问题,可以尝试使用ILMerge将程序集合并在一起,然后引用合并的程序集。我建议在软件发布期间这样做。否则,它似乎会使开发和调试变得更加繁琐。

相关问题