程序集和DLL之间的区别

时间:2009-03-23 17:14:12

标签: .net assemblies

Assembly和DLL有什么区别?在将代码发送到远程客户端时,是应该发送DLL文件还是应该发送程序集(当两者之间有直接TCP连接时)?

12 个答案:

答案 0 :(得分:40)

程序集是.NET的“最小部署单元”。通常一个程序集对应一个文件,但它没有 - 你可以有多个文件,其中一个是主文件,它知道所有其他位的位置。

单文件程序集通常是DLL或EXE文件。如果你有一个普通的类库,你只想将它发送到另一侧,那么DLL就是你想要的。当你遇到它们时,我只会担心更复杂的场景:)

答案 1 :(得分:12)

嗯,.NET dll是一个程序集,但.NET exe也可以是程序集,因此这意味着所有.NET dll都是程序集,但反之则不然。

您不应该将实际代码发送给客户端。相反,您应该在两端(客户端和服务器)上都有类型定义,并在两者之间发送序列化的实例

答案 2 :(得分:7)

程序集基本上是包含MSIL代码和元数据的文件。 它是.NET应用程序的最小部署单元。 .NET中的程序集有2个扩展名(.exe和.dll)

dll:动态链接库。 所以,我们可以说dll是一个程序集,但程序集可能并不总是一个dll

换句话说,dll是一种程序集

答案 3 :(得分:2)

程序集是包含已编译代码的文件。有两种组件。编译C#程序时,您正在创建一个程序集。可执行文件(有时称为“进程程序集”)具有EXE文件扩展名。我们书中的所有程序都编译为可执行文件。那些是你可以执行的程序集;您知道,您可以双击并运行EXE文件。还有库程序集,它们具有DLL文件扩展名。 DLL代表动态链接库。它们通常被称为类库,因为它们包含可以在程序中使用的类。

答案 4 :(得分:1)

程序集是预编译的代码,它将被传递到.net JIT Runtime。

它是一种与机器无关的代码格式,可由任何.net命令Lanuage Runtime运行。

DLL和EXE是程序集的常用格式。

答案 5 :(得分:1)

.EXE 这些是出站文件。 2.每个应用程序只存在一个.exe文件。 3. .Exe不能与其他应用程序共享。

的.dll 这些是inbund文件。 2.许多.dll文件可能存在于一个应用程序中。 3.dll可以与其他应用程序共享。

答案 6 :(得分:1)

1:Dll项目独立。

2:装配是特定于项目的。

3:程序集是一个或多个文件的集合,其中一个是DLL或EXE。

4:DLL包含要在Windows上运行的任何程序使用的库代码。 DLL可以包含结构化或面向对象的库。

5:DLL文件可能有几乎无限的入口点。

6:bin中的程序集可以在GAC中具有强/弱名称和程序集应具有强名称。

答案 7 :(得分:1)

这个问题似乎没有效果。 .dll和.exe都是程序集。这只是组装的延伸。两者都可以包含MSIL代码,但.exe具有单个入口点,即主要功能。但是.dll可以有很多切入点。

程序集是最小的部署单元,可以是dll或exe。这个程序集有静态和动态两种。我们的另一种静态组件,即称为卫星组件,包含资源(图像,资源文件等)。您可以使用强名称进行汇编,以便在GAC中注册它以供全局使用。

答案 8 :(得分:0)

嗯,“assembly”是一个用于.NET资源的术语。这不一定是DLL。 DLL可以是.NET资源,但它也可以是“本机”资源。程序集可以打包在DLL或EXE中。它只取决于特定的组件。

如果这与您的其他问题类似,则需要发送包含程序集的文件。你可能会做一些更复杂的事情,但就是这样。

答案 9 :(得分:0)

从.NET项目构建的任何DLL都是程序集,可执行文件也是如此。程序集不仅包含用于在公共语言运行时下运行的CLI代码,还包含有关程序集中代码的类和结构的完整信息。

本机DLL的不同之处在于它几乎不包含有关DLL中包含的代码和资源的任何元信息。本机可执行文件几乎与DLL相同。

由于模块化和内置的API元数据,大会很精彩。

答案 10 :(得分:0)

可以将程序集组织到一个文件中,其中包含所有这些信息 合并到单个动态链接库(DLL)文件或可执行(EXE)文件,或多个文件,其中信息合并到单独的DLL文件中 程序集的主要功能是形成类型,引用和安全性的边界。组件的另一个重要功能是形成一个部署单元。

默认情况下,创建程序集时,会将其标记为private。如果是程序集 必须在多个客户端程序集之间共享,它位于GAC(一个特殊的Windows文件夹)中。要将专用程序集转换为共享程序集,必须运行实用程序来创建加密密钥,并且必须使用密钥对程序集进行签名。签署程序集后,必须使用另一个实用程序将共享程序集添加到GAC中。

答案 11 :(得分:0)

程序集和dll之间的区别有点像飓风和台风之间的区别。这只取决于它发生在哪个海洋。

.NET世界中的dll或exe称为程序集。在本机Windows系统中,简称为dll或exe。

另一个明显的区别是程序集可以是dll或可执行文件。在本机Windows系统中,我们通常将dll和可执行文件视为两种不同类型的项目。