bin 和obj 的意义

来源:互联网 发布:沃德添利 风险 知乎 编辑:程序博客网 时间:2024/05/01 00:35

Bin 文件夹
可以在 Bin 文件夹中存储编译的程序集,并且 Web 应用程序任意处的其他代码(如页代码)会自动引用该文件夹。典型的示例是您为自定义类编译好的代码。您可以将编译后的程序集复制到 Web 应用程序的 Bin 文件夹中,这样所有页都可以使用这个类。

Bin 文件夹中的程序集无需注册。只要 .dll 文件存在于 Bin 文件夹中,ASP.NET 就可以识别它。如果您更改了 .dll 文件,并将它的新版本写入到了 Bin 文件夹中,则 ASP.NET 会检测到更新,并对随后的新页请求使用新版本的 .dll 文件。

Bin 文件夹的安全性
将编译后的程序集放入 Bin 文件夹中会带来安全风险。如果是您自己编写和编译的代码,那么您了解代码的功能。但是,您必须像对待任何可执行代码一样来对待 Bin 文件夹中已编译的代码。在完成代码测试并确信已了解代码功能之前,要对已编译的代码保持谨慎的态度。

请注意以下安全方面的知识,这些知识与是否将已编译的代码放入 Bin 文件夹有关:

Bin 文件夹中程序集的作用范围为当前应用程序。因此,它们无法访问当前 Web 应用程序之外的资源或调用当前 Web 应用程序之外的代码。

运行时,程序集的访问级别由本地计算机上指定的信任级别确定。有关更多信息,请参见 ASP.NET 信任级别和策略文件。

如果您使用了诸如 Visual Studio 这样的设计器,那么 Bin 文件夹中的代码运行所在的上下文与运行时不同。例如,代码可能以完全信任状态运行。

Bin目录用来保存项目生成后程序集,它有Debug和Release两个版本,分别对应的文件夹为bin/Debug和bin/Release,这个文件夹是默认的输出路径,我们可以通过:项目属性—>配置属性—>输出路径来修改。

obj目录是用来保存每个模块的编译结果,在.NET中,编译是分模块进行的,编译整个完成后会合并为一个.DLL或.EXE保存到bin目录下。因为每次编译时默认都是采用增量编译,即只重新编译改变了的模块,obj保存每个模块的编译结果,用来加快编译速度。是否采用增量编译,可以通过:项目属性—>配置属性—>高级—>增量编译来设置。

bin目录是程序生成后的文件,obj是执行文件。
obj调用bin的代码。bin也就是箱子,箱子里放了代码。

原创粉丝点击