ASP.NET - bin目录与在web.conf中添加程序集

Jas*_*Cav 10 asp.net assemblies

我对ASP.NET编程比较陌生(但不是一般的编程),而且我一直在查看已经交给我的项目.在这个项目中,有一个bin目录,其中包含大量各种DLL文件.

然后,在web.conf文件中,在程序集结构内部(在XML中),添加了大量其他程序集.

我已经对SO和谷歌进行了一般性的搜索,我仍然在努力解决两者之间的差异.一种方式比另一方"更好"吗?可以提供的任何澄清将是最受欢迎的.

谢谢.

Eil*_*lon 11

有几种方法可以在ASP.NET应用程序中引用程序集(通常是DLL):

  1. 将DLL添加到应用程序的"bin"目录中.这会在应用程序中的每个代码文件和ASPX文件中创建一个隐式引用.这意味着ASPX文件内或App_Code中的CS文件内的代码可以使用该DLL中的类型.

  2. <assemblies>在web.config 的部分中添加对DLL的引用.有关语法的详细信息,请参阅MSDN.通常有多个web.config文件适用于特定的Web应用程序.应用程序本身可以有多个web.config文件(例如,特定文件夹中的web.config可能会添加自己的引用).还有一个全局web.config(或machine.config),它具有可供计算机上所有ASP.NET应用程序使用的引用.

  3. <%@ Assembly Name="" %>在特定的ASPX(或ASCX或MASTER)文件中使用该指令.有关语法的详细信息,请参阅MSDN.

ASP.NET应用程序中给定文件中的引用是上述适用项的组合.

您必须引用程序集的原因是ASPX文件(很像CS和VB文件本身)最终由C#或VB编译器编译.为了让这些编译器知道您想要使用哪些类型,他们需要知道哪些程序集包含这些类型.

  • 如果DLL没有强名称签名,则您将选择#1;在这种情况下,它*不能*在GAC中,因为GAC要求对该程序集进行签名。如果DLL已安装在GAC中,则选择#2。因此,它本身并不是真正的“选择”,而是更多的决策矩阵。 (2认同)