【发布时间】:2010-10-15 00:43:19
【问题描述】:
程序集和 DLL 有什么区别?将代码发送到远程客户端时,应该发送一个 DLL 文件还是应该发送一个程序集(当两个之间有直接 TCP 连接时)?
【问题讨论】:
标签: .net assemblies
程序集和 DLL 有什么区别?将代码发送到远程客户端时,应该发送一个 DLL 文件还是应该发送一个程序集(当两个之间有直接 TCP 连接时)?
【问题讨论】:
标签: .net assemblies
程序集是 .NET 的“最小部署单元”。通常一个程序集对应一个文件,但它不是必须的 - 你可以有多个文件,其中一个是知道所有其他位在哪里的主文件。
单文件程序集通常是 DLL 或 EXE 文件。如果您有一个普通的类库,并且只想将它发送到另一端,那么 DLL 就是您想要的。当你遇到更复杂的场景时,我只会担心:)
【讨论】:
嗯,.NET dll 是一个程序集,但 .NET exe 也可以是程序集,这意味着所有 .NET dll 都是程序集,但反之则不然。
您不应该将实际代码发送给客户端。相反,您应该在双方(客户端和服务器)都有类型定义,并在两者之间发送序列化的实例。
【讨论】:
程序集基本上是一个包含 MSIL 代码和元数据的文件。 它是 .NET 应用程序的最小部署单元。 .NET 中的程序集有 2 个扩展名(.exe 和 .dll)
dll:动态链接库。 所以,我们可以说一个 dll 是一个程序集,但一个程序集可能并不总是一个 dll
换句话说,dll是一种程序集
【讨论】:
dll is one type of an assembly。这是不正确的。程序集采用 dll 文件的形式。程序集可以是 dll 文件。但 dll 不一定是汇编文件。
程序集是包含已编译代码的文件。有两种组件。当你编译你的 C# 程序时,你正在创建一个程序集。可执行文件(有时称为“进程程序集”)具有 EXE 文件扩展名。我们书中的所有程序都编译为可执行文件。这些是您可以执行的程序集;要知道,EXE文件是可以双击运行的。还有一些库程序集,它们具有 DLL 文件扩展名。 DLL 代表动态链接库。它们通常被称为类库,因为它们包含您可以在程序中使用的类。
【讨论】:
的组件,是将被传递到的.NET JIT运行时所述预编译的代码。 P>
它是可以由任何.NET命令Lanuage运行系统中运行的代码的机器无关的格式。 P>
DLL和EXE文件是通用格式的组件。 P>
【讨论】:
.exe 1.这些是出站文件。 2.每个应用程序只存在一个.exe 文件。 3. .exe不能与其他应用共享。
.dll 1.这些是入库文件。 2.许多.dll文件可能存在于一个应用程序中。 3. .dll 可以与其他应用程序共享。
【讨论】:
这个问题似乎无效。 .dll 和 .exe 都是程序集。这只是装配的延伸。两者都可以包含 MSIL 代码,但 .exe 具有单一入口点,即主函数。但是.dll可以有很多入口。
Assembly 是最小的部署单元,可以是 dll 或 exe。该程序集有静态和动态两种类型。我们是另一种类型的静态程序集,即包含资源(图像、资源文件等)的卫星程序集。您可以通过在 GAC 中注册来为程序集使用强名称,使其可供全球使用。
【讨论】:
DLL 项目独立。
程序集是特定于项目的。
程序集是一个或多个文件的集合,其中一个是 DLL 或 EXE。
DLL 包含任何在 Windows 上运行的程序都可以使用的库代码。 DLL 可以包含结构化或面向对象的库。
一个 DLL 文件可以有几乎无限个可能的入口点。
bin 中的程序集可以有强/弱名称,GAC 中的程序集应该有强名称。
【讨论】:
嗯,“程序集”是用于 .NET 资源的术语。这不一定是 DLL。 DLL 可以是 .NET 资源,但也可以是“本机”资源。程序集可以打包在 DLL 或 EXE 中。这仅取决于特定的程序集。
如果这与您的其他问题类似,您需要发送包含程序集的文件。你也许可以做一些更复杂的事情,但就是这样。
【讨论】:
从 .NET 项目构建的任何 DLL 都是程序集,就像可执行文件一样。程序集不仅包含在公共语言运行时运行的 CLI 代码,还包含有关程序集中代码的类和结构的完整信息。
本机 DLL 的不同之处在于它几乎不包含有关 DLL 中包含的代码和资源的任何元信息。本机可执行文件几乎与 DLL 相同。
程序集非常棒,因为它们的模块化和内置的 API 元数据。
【讨论】:
程序集可以组织到一个文件中,所有这些信息都在其中 合并到单个动态链接库 (DLL) 文件或可执行 (EXE) 文件中,或将信息合并到单独的 DLL 文件中的多个文件中 程序集的主要功能是形成类型、引用和安全性的边界。组件的另一个重要功能是形成一个单元进行部署。
默认情况下,在创建程序集时,它被标记为私有。如果程序集 必须在多个客户端程序集之间共享,它被放置在 GAC,一个特殊的 Windows 文件夹中。要将私有程序集转换为共享程序集,必须运行实用程序来创建加密密钥,并且必须使用密钥对程序集进行签名。签署程序集后,您必须使用另一个实用程序将共享程序集添加到 GAC。
【讨论】:
程序集和dll的区别有点像飓风和台风的区别。这取决于它发生在哪个海洋。
.NET 世界中的 dll 或 exe 称为程序集。在本机Windows系统中简称为dll或exe。
另一个显着的区别是程序集可以是 dll 或可执行文件。而在原生 Windows 系统中,我们通常将 dll 和可执行文件视为两种不同类型的项。
【讨论】: