【问题标题】:Are dll files compiled? [duplicate]dll文件是否编译? [复制]
【发布时间】:2020-08-15 08:36:26
【问题描述】:

我的问题很简单

1-我们在c#中使用的dll是编译成二进制的吗?

如果答案是肯定的?

2- 那么我如何在另一个应用程序中重复使用它 我的意思是当我创建另一个 c# 项目时,我可以使用相同的 dll 名称 我可以使用 dll 中的所有类 (我想我不能再使用它了,因为它变成了二进制文件)

【问题讨论】:

  • 你可以看看 .net 汇编概念
  • 1) 在某种意义上是的。源代码转换为CIL 并且是二进制形式。 2) 是的,您只需将reference 添加到您的dll 中即可。 3) 是的,因为源代码不是转换成机器代码而是转换成 CIL(参见上面的 1)
  • 请发表一个问题。甚至有可能这个问题太宽泛了。
  • 我删除了“如何像 dnSpy/ILSpy/DotNetPeak/...这样的反编译器能够将 .Net 程序集转换为原始代码”问题...正如@HimBromBeere 所说,每篇文章都问一个经过充分研究的问题。

标签: c# asp.net .net dll


【解决方案1】:

C# 是 .NET 语言之一。所以我会尝试用 .NET 术语说话。

1-我们在c#中使用的dll是编译成二进制的吗?

不,所有 .NET 都编译为 MSIL。不是二进制,不是机器码。最后翻译成机器码是运行时的工作。

您可以大致比较 MSIL 代码和 Java 字节码。

2- 那么我如何在另一个应用程序中重用它当我创建另一个 c# 项目时我的意思是我可以使用相同名称的 dll 并且我可以使用 dll 中的所有类

完全相同的方式,您已经使用 .NET 团队编写的 dll:

  1. 添加对项目的引用。
  2. 使用完全限定名称和/或使用指令。

请注意,.exe 也可以用作参考。它们的内部结构与 .NET .dll 非常相似,除了一些本机引导代码和一个起点。

【讨论】:

    【解决方案2】:

    我只想补充一点,即使在项目中没有直接引用的情况下,您也可以重用程序集,因为程序集可以在运行时加载,但是其中类型的使用会更加棘手,您可以找到更多关于这一点的信息,因为例如,在这个answer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 2013-10-05
      • 2023-01-17
      • 2014-06-17
      • 1970-01-01
      • 2019-12-06
      相关资源
      最近更新 更多