C#与.NET程序员面试宝典 2.2.7 面试题14:解决方案下的一个项目是否就代表一个程序集
2010-10-20 10:18
225 查看
程序集是.NET框架中比较基本的概念,.NET程序员在调试代码的时候经常会遇到程序集引用及依赖问题方面的报错,要解决这些错误问题,首先需要了解程序集的概念和特性,并且需要清晰地了解程序集和项目之间的关系。
【出现频率】★★★★
【关键考点】
程序集(Assemble)
程序集特性
项目
【考题分析】
程序集(Assemble)是指包含编译好的、面向.NET Framework的代码的逻辑单元,是完全自我描述性的一个逻辑单元(而不是物理单元)。程序集可以存储在多个文件中,但动态程序集不是存储在文件中,而是存储在内存中。如果某一个程序集存储在多个文件中,则会有一个主文件包含入口点,该主文件描述了程序集中的其他文件。可执行的程序集代码和库程序均使用相同的程序集结构,惟一的区别是可执行的程序集包含一个主程序入口点,而库程序集则不包含。简而言之,程序集就是几个彼此有关联程序文件的集合。
程序集包含程序的元数据,程序集的一个重要特性是它们包含的元数据描述了对应代码中定义的方法和类型。程序集也包含描述程序集本身的元数据,这种程序集元数据包含在程序集清单区域中,可以检查程序集的完整性及其版本。程序集的元数据表示调用给定程序集中的代码中应用程序或其他程序集不需要指定注册表或其他数据源,以便确定如何使用该程序集。程序集包含两种类型:共享程序集和私有程序集。
注意:一个项目可以编译到一个程序集,也可以把多个项目编译到一个程序集里面,还可以把一个项目编译到多个程序集里。一个DLL文件就是一个程序集,因此一个项目可以生成多个DLL文件,而同一个项目下也可以有多个不同的命名空间。
【答案】
项目和程序集是两个概念,项目不代表程序集。程序集(Assemble)是一个由类型定义、数据文件和资源文件组成的逻辑集合。每个程序集都包含一个程序集清单,该清单通常被附加在某个文件头上,也可以设置单独建立一个文件来包含该清单。应用程序域(AppDomain)是CLR中提供代码运行范围、错误隔离和安全隔离的逻辑单元,功能类似于操作系统的进程。而一个项目可以编译到一个程序集,也可以把多个项目编译到一个程序集里面,还可以把一个项目编译到多个程序集里。
【出现频率】★★★★
【关键考点】
程序集(Assemble)
程序集特性
项目
【考题分析】
程序集(Assemble)是指包含编译好的、面向.NET Framework的代码的逻辑单元,是完全自我描述性的一个逻辑单元(而不是物理单元)。程序集可以存储在多个文件中,但动态程序集不是存储在文件中,而是存储在内存中。如果某一个程序集存储在多个文件中,则会有一个主文件包含入口点,该主文件描述了程序集中的其他文件。可执行的程序集代码和库程序均使用相同的程序集结构,惟一的区别是可执行的程序集包含一个主程序入口点,而库程序集则不包含。简而言之,程序集就是几个彼此有关联程序文件的集合。
程序集包含程序的元数据,程序集的一个重要特性是它们包含的元数据描述了对应代码中定义的方法和类型。程序集也包含描述程序集本身的元数据,这种程序集元数据包含在程序集清单区域中,可以检查程序集的完整性及其版本。程序集的元数据表示调用给定程序集中的代码中应用程序或其他程序集不需要指定注册表或其他数据源,以便确定如何使用该程序集。程序集包含两种类型:共享程序集和私有程序集。
注意:一个项目可以编译到一个程序集,也可以把多个项目编译到一个程序集里面,还可以把一个项目编译到多个程序集里。一个DLL文件就是一个程序集,因此一个项目可以生成多个DLL文件,而同一个项目下也可以有多个不同的命名空间。
【答案】
项目和程序集是两个概念,项目不代表程序集。程序集(Assemble)是一个由类型定义、数据文件和资源文件组成的逻辑集合。每个程序集都包含一个程序集清单,该清单通常被附加在某个文件头上,也可以设置单独建立一个文件来包含该清单。应用程序域(AppDomain)是CLR中提供代码运行范围、错误隔离和安全隔离的逻辑单元,功能类似于操作系统的进程。而一个项目可以编译到一个程序集,也可以把多个项目编译到一个程序集里面,还可以把一个项目编译到多个程序集里。
相关文章推荐
- 解决方案下的一个项目是否就代表一个程序集
- 如何组织一个同时面向 UWP/WPF/.Net Core 控制台的 C# 项目解决方案
- C#判断一个string是否可以为数字,五种解决方案
- C#判断一个string是否可以为数字,五种解决方案!
- c# 如何建立一个含有2个项目的解决方案??
- [总结]C#判断一个string是否可以为数字,五种解决方案!
- 某公司面试题:最长顺子;输入很多个整数(1<=数值<=13),返回其中可能组成的 最长的一个顺子(顺子中数的个数代表顺的长度); 其中数字1也可以当作14用
- C# 001 --- 正确的删除一个控件的事件函数 --- 解决错误: “A”不包含“B”的定义,并且找不到可接受类型为“A”的第一个参数的扩展方法“B”(是否缺少 using 指令或程序集引用?)
- C#中一个解决方案中有多个项目,如和选择运行特定项目。
- C#中一个解决方案中有多个项目,如和选择运行特定项目。
- 12.C#:解决方案、项目、程序集、命名空间区别
- C#之回到了最初的起点----解决方案、项目、程序集、命名空间
- C#一个解决方案下多个项目如何跨项目页面跳转
- C#之回到了最初的起点----解决方案、项目、程序集、命名空间
- [总结]C#判断一个string是否可以为数字,五种解决方案!
- C#判断一个string是否可以为数字,五种解决方案
- C#与.NET程序员面试宝典 2.1.5 面试题5:简述ASP.NET一个页面的生命周期
- c#.net无法直接启动带有“类库输出类型”的项目 若要调试此项目,请在此解决方案中添加一个引用库项目的可执行项目。将这个可执行项目设置为启动项-----解决办法
- (C#)一个解决方案下的多个项目之间互相调用
- C#与.NET程序员面试宝典 2.3.3 面试题18:如何通过安装向导配置一个Web站点(图)