日期:2014-05-20  浏览次数:20669 次

程序集求理解
哪位神能帮我澄清一下程序集的含义啊?
程序集是怎么理解的?边界在哪,怎么构建,是.net framework自动构建吗,构建的边界是什么,依据是什么。
程序集、组件、类库有什么区别和联系?
.net创建的一个项目都只会生成一个程序集吗?
------解决方案--------------------
满足楼主求知欲 推荐书籍《CLR VIA C#》 
------解决方案--------------------
简单来说,一堆代码写到一个文件里,组成了一个叫做程序集的东西。代码躺在文件了里就是垃圾,但是如果被别的程序集(或者主程序)装在到内存代码空间里待命,这就不是垃圾了,就开始起作用了。
------解决方案--------------------
一个程序集就是一个exe或者dll。

组件一般是说实现IComponent接口的一个类

类库,指一个dll程序集,它为可执行程序提供可供调用的代码,而本身不单独执行。
------解决方案--------------------
引用:
一个项目里有哪些文件会生成到一个程序集呢?程序集是.net自动构建的吧?他是依据什么把多个源码文件和资源文件 组织到一个程序集中呢?倘若我要它生成两个程序集可以吗?

没有你说的这么复杂。如果你轻松地创建一个工程(类库工程、窗体工程、控制台工程、windows服务工程,等等),那么就编译为一个程序集。

尽管可以在同一个文件中有多个程序集结构,但是很少这样,大多数人基本上一辈子也不会考虑一个工程弄成两个程序集,或者两个工程装配成一个程序集的问题。

请把学习时间用在更有用的程序设计、解决实际问题等事情上。而这类东西,占用你几分钟时间也就够了。
------解决方案--------------------
引用:
Quote: 引用:

一个程序集就是一个exe或者dll。

组件一般是说实现IComponent接口的一个类

类库,指一个dll程序集,它为可执行程序提供可供调用的代码,而本身不单独执行。



一个项目里有哪些文件会生成到一个程序集呢?程序集是.net自动构建的吧?他是依据什么把多个源码文件和资源文件 组织到一个程序集中呢?倘若我要它生成两个程序集可以吗?


你有没有尝试手工用命令行编译一个项目(程序集),如果你做过了,就知道怎么回事了。

一般来说,编译一个程序集大概是这样的 csc.exe /out:yourlibrary.dll /reference:a.dll;b.dll program.cs /linkres:xxx.res yourclass.cs xxx.cs yyy.cs
这相当于你新建一个类库项目(/out:yourlibrary.dll) 
添加了对a.dll b.dll的引用(/reference:a.dll;b.dll)
添加了资源xxx.res(/linkres:xxx.res)
包含3个源代码文件(yourclass.cs xxx.cs yyy.cs)
------解决方案--------------------
换一句话,当你创建一个项目,实际上就是维护了一套编译器输出配置(事实上在VC++ 4.0以前,项目文件就是MAK文件,也就是说,创建一个项目就是创建了一套编译器的批处理命令),当然,现在的C#项目文件,还包括了一些别的信息。

现在回答你的问题:
一个项目里有哪些文件会生成到一个程序集呢?
你在项目中添加的源代码文件,并且生成动作设置为“编译”的,都会被编译处理
程序集是.net自动构建的吧?
是C#编译器(csc.exe)产生的,而产生的依据是根据项目配置,由VS调用的
他是依据什么把多个源码文件和资源文件 组织到一个程序集中呢?
如上所述
倘若我要它生成两个程序集可以吗?
在一个解决方案中创建两个项目