什么是.NET程序集?我在网上浏览了一下,我不明白这个定义。
当前回答
Visual Studio解决方案由一个或多个项目组成。例如:控制台项目可以生成程序集。程序集在逻辑上是可以交付给客户的代码块,在物理上是。exe(可执行程序)或。dll(可被其他程序重用)。
其他回答
MSDN给出了一个很好的解释:
Assemblies are the building blocks of .NET Framework applications; they form the fundamental unit of deployment, version control, reuse, activation scoping, and security permissions. An assembly is a collection of types and resources that are built to work together and form a logical unit of functionality. An assembly provides the common language runtime with the information it needs to be aware of type implementations. To the runtime, a type does not exist outside the context of an assembly.
在Microsoft.Net中,程序集是代码版本安全、部署和可重用性的最小单元。
它包含:
- Assembly Identity
- Manifest
- Metadata
- MSIL Code
- Security Information
- Assembly Header
Visual Studio解决方案由一个或多个项目组成。例如:控制台项目可以生成程序集。程序集在逻辑上是可以交付给客户的代码块,在物理上是。exe(可执行程序)或。dll(可被其他程序重用)。
程序集是构成逻辑功能单元的类型和资源的集合。.NET Framework中的所有类型都必须存在于程序集中;公共语言运行库不支持程序集之外的类型。每次使用Visual Basic . net创建Microsoft Windows®应用程序、Windows服务、类库或其他应用程序时,您都在构建单个程序集。每个程序集都存储为.exe或.dll文件。
来源:https://msdn.microsoft.com/en-us/library/ms973231.aspx#assenamesp_topic4
对于像我这样有Java背景的人来说,希望下面的图表能够阐明概念
程序集就像jar文件(包含多个.class文件)。您的代码可以引用现有的程序集,或者您的代码本身可以作为程序集发布,以供其他代码引用和使用(您可以将其视为Java中的jar文件,可以添加到项目依赖项中)。
最后,程序集是可以在任何安装了CLR的操作系统上运行的编译代码。这就相当于说.class文件或捆绑的jar可以在任何安装了JVM的机器上运行。
用更简单的术语来说:可以由. net运行时环境执行的(预编译的)代码块。. net程序由一个或多个程序集组成。
推荐文章
- 在什么情况下SqlConnection会自动被征召到环境事务范围事务中?
- 用c#解析JSON
- Windows窗体中的标签的换行
- 为什么在c#中使用finally ?
- 为什么不是字符串。空一个常数?
- 为什么我不能在c#中有抽象静态方法?
- Nuget连接尝试失败“无法为源加载服务索引”
- net HttpClient。如何POST字符串值?
- 我如何使一个方法的返回类型泛型?
- 何时处理CancellationTokenSource?
- 如何获取正在执行的程序集版本?
- AutoMapper vs valueinjector
- 为什么控制台不。Writeline,控制台。在Visual Studio Express中编写工作?
- 什么是.NET程序集?
- 字符串不能识别为有效的日期时间“格式dd/MM/yyyy”