0

如果我有订单中的项目列表。

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 的这种意外行为。

4

2 回答 2

4

如果WebUI使用中定义的任何类型,则Commons必须将项目Commons作为对项目的引用包含在内。即使该类型用作在项目正在使用的不同程序集(即)中声明的方法的返回类型。WebUIBALWebUI

这个真的没办法了。。

于 2013-03-18T16:36:36.843 回答
1

在项目中引用 DLL 并不会将 DLL 的代码包含(复制)到项目中。如果BAL返回定义在Commonsto中的对象WebUI,那么WebUI也需要引用 toCommons以便知道返回的类型。

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

于 2013-03-18T16:37:41.770 回答