什么是.NET程序集?我在网上浏览了一下,我不明白这个定义。
当前回答
用更简单的术语来说:可以由. net运行时环境执行的(预编译的)代码块。. net程序由一个或多个程序集组成。
其他回答
程序集是.net应用程序的最小部署单元。 它可以是一个dll或exe。 主要有两种类型:
私人组装: dll或exe只是一个应用程序的唯一属性。它通常存储在应用程序根文件夹中 公共/共享组装: 它是一个可以同时被多个应用程序使用的dll。共享程序集存储在GAC中,即全局程序集缓存。
听起来困难吗?Naa…… GAC就是C:\Windows\Assembly文件夹,在这里您可以找到安装在PC上的所有软件的公共程序集/dll。
还有第三种也是最不为人知的装配类型:卫星装配。 附属程序集只包含静态对象,如图像和应用程序所需的其他非可执行文件。
在Microsoft.Net中,程序集是代码版本安全、部署和可重用性的最小单元。
它包含:
- Assembly Identity
- Manifest
- Metadata
- MSIL Code
- Security Information
- Assembly Header
Visual Studio解决方案由一个或多个项目组成。例如:控制台项目可以生成程序集。程序集在逻辑上是可以交付给客户的代码块,在物理上是。exe(可执行程序)或。dll(可被其他程序重用)。
物理集合类,接口,枚举等,这是在IL代码。可以是。exe或。dll文件。exe是可执行文件,. dll可以在任何。net支持的语言中动态使用。
除了公认的答案,我还想给大家举个例子!
例如,我们都在使用
System.Console.WriteLine()
但是System.Console.WriteLine的代码在哪里? 哪个代码是实际将文本放到控制台上的?
如果你看一下Console类文档的第一页,你会在顶部附近看到以下内容: 这表明控制台类的代码位于名为mscorlib的程序集中。程序集可以包含多个文件,但在本例中,它只有一个文件,即动态链接库mscorlib.dll。
mscorlib.dll文件在。net中非常重要,它是。net中类库的主要DLL,它包含了所有基本的。net类和结构。
如果你懂C或c++,通常你需要一个#include指令在顶部引用一个头文件。包含文件为编译器提供函数原型。相反,c#编译器不需要头文件。在编译过程中,c#编译器直接访问mscorlib.dll文件,并从该文件中的元数据中获取有关其中定义的所有类和其他类型的信息。
c#编译器能够确定mscorlib.dll确实在名为System的命名空间中包含一个名为Console的类,该类具有一个名为WriteLine的方法,该方法接受一个字符串类型的参数。
c#编译器可以确定WriteLine调用是有效的,并且编译器在可执行文件中建立对mscorlib程序集的引用。
默认情况下,c#编译器将访问mscorlib.dll,但对于其他dll,你需要告诉编译器类所在的程序集。这些被称为引用。
我希望现在明白了!
Charles pitzold
推荐文章
- 实体框架核心:在上一个操作完成之前,在此上下文中开始的第二个操作
- 如何为构造函数定制Visual Studio的私有字段生成快捷方式?
- 为什么Visual Studio 2015/2017/2019测试运行器没有发现我的xUnit v2测试
- 如何使用JSON确保字符串是有效的JSON。网
- AppSettings从.config文件中获取值
- 通过HttpClient向REST API发布一个空体
- 如何检查IEnumerable是否为空或空?
- 自动化invokerrequired代码模式
- 没有ListBox。SelectionMode="None",是否有其他方法禁用列表框中的选择?
- 在c#代码中设置WPF文本框的背景颜色
- 在c#中,什么是单子?
- c#和Java中的泛型有什么不同?和模板在c++ ?
- c#线程安全快速(est)计数器
- 如何将此foreach代码转换为Parallel.ForEach?
- 如何在iis7应用程序池中设置。net Framework 4.5版本