赞
踩
程序集是代码进行编译是的一个逻辑单元,把相关的代码和类型进行组合,然后生成PE文件(例如可执行文件**.exe和类库文件.dll**)。由于程序集在编译后并不一定会生成单个文件,而可能会生成多个物理文件,甚至可能会生成分布在不同位置的多个物理文件,所以程序集是一个逻辑单元,而不是一个物理单元。即程序集在逻辑上是一个编译单元,但在物理储存上可以有多种存在形式。对于静态程序集可以生成单个或多个文件,而动态程序集是存在于内存中的。在C#中程序集处处可见,因为任何基于.NET的代码在编译时都至少存在一个程序集。
基于.NET框架的.dll库是一个完整的程序集,需要事先引用对应的类库。从代码的结构上看,一个程序集可以包含一个或多个命名空间,而每个命名空间中又可以包含子命名空间或类型列表。由于程序集在编译后可以生成多个模块文件,因此一个物理文件并不代表它就是一个程序集,一个程序集并不一定只有一个文件。在VS开发环境中,一个解决方案可以包含多个项目,而每个项目就是一个程序集。
应用程序结构:包含 应用程序域(AppDomain),程序集(Assembly),模块(Module),类型(Type),成员(EventInfo、FieldInfo、MethodInfo、PropertyInfo) 几个层次。
在上面的步骤中我们讲到:在文件夹中创建Assembly Defienitions时,Unity将从该文件夹中的所有脚本编译到一个单独的托管程序集,并包含所有子文件夹的定义。
如果子文件夹具有自己的程序集定义,该文件夹中的所有脚本及其子文件夹中的脚本编译到一个单独的托管程序集,这些托管程序集充当Unity项目中的单个库。
图片一目了然:
细心的同学可能发现创建程序集的时候下面还有一个Assembly Definition Reference 选项,下面是一些注意事项:
【Name】:程序集的名称(不带文件扩展名); 程序集名称在整个项目中必须唯一。
【General】:
【Define Constraints】:指定必须定义的编译器#define指令,才能编译或引用程序集。
【Assembly Definition References】:指定对使用 Assembly Defienitions 创建的其他程序集的引用。
【Platforms】:设置发布平台
【Version Defines】:
Resource:选择要为其设置Define的包或模块。 该列表包含项目中所有活动的软件包和模块。
Define:设置Define的名称。 仅当Expression返回true时才设置此定义。
Expression:选择的模块或软件包的语义版本范围。 必须使用数学间隔符号。 不支持通配符。 该版本使用与Microsoft .NET软件包管理器NuGet相同的版本范围。
Expression outcome:Expression代表的数学方程式。
参考文章:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。