3

想象一下以下解决方案:

  • 网站 ABC.com(不是 Web 应用程序)
  • BLL(单独程序集中的业务逻辑层)
  • DTO(自己程序集中的 dto 对象)
  • DAL(它自己的程序集中的数据访问层)。

    1. BLL 引用了 DAL。
    2. BLL 具有对 DTO 层的引用。
    3. 网站项目引用了 BLL。

编译网站工程时,BIN目录下会出现以下DLL:
BLL.dll
DTO.dll
DAL.dll

当一个人去预览站点时,会发生一个错误,因为没有必要的程序集引用......现在如果右键单击网站项目,添加引用,并明确添加对缺少的程序集的引用,它会正常工作。

在我看来,ASP.NET 提取了在网站中添加/引用的引用程序集的引用程序集。

为什么需要对引用的引用添加显式引用...?抱歉,如果我的措辞不正确或令人困惑。

4

3 回答 3

2

这是一篇关于您的问题Compilation and Deployment的好文章。

它与在运行时编译的“网站”有关。希望上面的文章能回答你的问题。

于 2008-12-18T21:58:50.710 回答
2

今天刚刚为我正在进行的项目测试了这个场景。只需在 Web.config 中添加程序集就可以了:

<compilation debug="true">
  <assemblies>
    <clear/>
    <add assembly="mscorlib"/>
    <add assembly="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
    <add assembly="System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
    <add assembly="System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
    <add assembly="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>

    <add assembly="YourBLLLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
  </assemblies>
</compilation>

此外,您的程序集应该保留在您网站根目录下著名的 ./bin 文件夹中。GL!

于 2009-01-12T12:18:50.873 回答
2

我认为这个问题可能与使用网站项目有关,而不是 Web 应用程序。我不记得了,但是网站项目的编译方式有些时髦,与 Web 应用程序项目相反。

于 2008-12-18T19:38:42.320 回答