ASP.NET中bin app_code app_data等文件夹的作用.pdf
文本预览下载声明
1. Bin文件夹
Bin 文件夹包含应用程序所需的,用于控件、组件或者需要引用的任何其他代码的可部署程序集。该目录中存在的任
何.dll 文 件将自动地链接到应用程序。如果在该文件夹中留有不用的或过期的文件,则可能出现“二义性引用
(ambiguous reference)”异常的风险。换句话说,如果两个不同的程序集定义相同的类(相同的命名空间和名称),则
ASP.NET运行库不能决定应该使用哪一 个程序集,从而抛出一个异常。在开发时,当我们重新命名一个项目或一个
程序集的名称时,这是常见的错误。为了避免这种错误,一定不要在该文件夹中保留任何 不必要的程序集,或者至
少要从配置文件的assemblies节中删除如下代码行:
add assembly=* /
在上表所列所有文件夹中,只有Bin可以被ASP.NET 1.x应用程序识别。该文件夹是强制性的。
2. App_Browser文件夹
该可选的文件夹包含.browser文件。.browser文件描述浏览器(不管是移动设备浏览器,还是台式机浏览器)的特 征和
功能。ASP.NET在安装路径下的Config\Browser 文件夹中安装了大量.browser文件,这些文件供所有应用程序共享。
我们只是把 当前应用程序特有的浏览器文件放在App_Browser文件夹下。.browser文件的内容即时动态地进行编译,
以便向ASP.NET运行库提供最新 的浏览器信息。
让我们简单谈谈拥有一个自定义的.browser文件可能有帮助的场景。设想应用程序使用了一个在某个浏览器下不能有效
呈现的控件。在指定的浏览器中显示宿主页面时,可以编写一个.browser文件,迫 ASP.NET使用一个不同的适配器
来生成该控件。
browsers
browser id=browserID
controlAdapters
adapter controlType=Samples.CustomControl
adapterType=Samples.Adapters.CustomControlAdapter /
/controlAdapters
/browser
/browsers
假设 browserID 与 ASP.NET 识别的标准浏览器之一相匹配,则上文所示的.browser 文件指示在指定的浏览器下使用
CustomControlAdapter呈现CustomControl。
3. App_Code 文件夹
App_Code 文件夹正好在Web 应用程序根目录下,其存储所有应当作为应用程序的一部分动态编译的类文件。这些类
文件自动链接到应用程序,而不需要在页面中添加任何显式指令或声明来创建依赖性。App_Code 文件夹中放置的类文
件可以包含任何可识别的ASP.NET 组件 ——自定义控件、辅助类、build 提供程序、业务类、自定义提供程序、HTTP
处理程序等。
注意 在开发时,对 App_Code 文件夹的更改会导致整个应用程序重新编译。对于大型项目,这可能不受
欢迎,而且很耗时。为此,鼓励大家将代码进行模块化处理到不同的类库中,按逻辑上相关的类集合进行组织。应用
程序专用的辅助类大多应当放置在App_Code 文件夹中。
App_Code 文件夹中存放的所有类文件应当使用相同的语言。如果类文件使用两种或多种语言编写,则必须创建特定语
言的子目录,以包含用每种语言编写的类。一旦根据语言组织这些类文件,就要在web.config 文件中为每个子目录添
加一个设置:
compilation
codeSubDirectories
add directoryName=VBFolder /
/codeSubDirectories
/compilation
重要的是,特定语言的子目录应在web.config 文件中注册,否则,不管它们属于哪个文件夹,App_Code 文件夹下 的
所有文件将被编译成一个单独的程序集。上述配置脚本描述了这么一种情况,即所有的C#文件都放在App_Code 文件
夹的根目录下,而把几个 Visual Basic .NET 类文件移入VBFolder 目录中。如果codeSubDirectories节中提到的目
录不存在,则会收到一个编译错误提 示。
App_Code 根文件夹中的文件被编译成App_Code_xxx.dll 程序集,其中 xxx 是随机生成的字符序列。一个 给定子目
录中的文件将被编译成一个名为App_SubCode_xxx_yyy.dll 的动态创建的程序集,其中xxx 指示子目录的名称,而yyy
是一个
显示全部