如果我在订单中有一个项目列表。
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的这种意外行为。
答案 0 :(得分:4)
如果WebUI
使用<{1}}中定义的任何类型,那么Commons
项目必须作为参考到Commons
项目。即使该类型被用作在WebUI
项目正在使用的不同程序集(即BAL
)中声明的方法的返回类型。
真的没办法解决这个问题。
答案 1 :(得分:1)
引用项目中的DLL不包括(复制)DLL的代码到项目中。如果BAL
将Commons
中定义的对象返回到WebUI
,那么WebUI
将需要对Commons
的引用,以便它知道要返回的类型。
如果您想要解决此问题,可以尝试使用ILMerge将程序集合并在一起,然后引用合并的程序集。我建议在软件发布期间这样做。否则,它似乎会使开发和调试变得更加繁琐。