代码之家  ›  专栏  ›  技术社区  ›  Denis Biondic

为什么不能使用“复制本地”将.NET DLL包含在应用程序中,这样就不需要安装.NET了

  •  2
  • Denis Biondic  · 技术社区  · 16 年前

    很简单的问题,我真的想知道背后的原因(真正的原因)。假设您希望将.NET应用程序分发到未安装.NET的计算机(甚至不是1.1)。为什么我们不能将mscorelib.dll&others包含在out-app中? 是因为必须以某种方式安装CLR,才能获得用于集成IL的JIT功能吗?

    我知道现在这个问题毫无意义,因为每个系统都至少有.NET 2.0,但我仍然想知道:=)

    3 回复  |  直到 16 年前
        1
  •  1
  •   Matthew Whited    16 年前

    安装库和clr还允许共享程序集。你真的想让成百上千的clr副本在你的机器上运行吗?我喜欢这样一个事实:我知道某些东西可以用于我的申请。我编译了1.4.5或1.4.6版本的运行时,比担心__要好得多…也许是1.2.5(JRE可能很痛苦)

    此外,.NET框架的许多部分只是非托管API上的托管包装器。以及您使用但不直接引用的大量其他程序集。(参见mscoree.tlb和许多其他)

        2
  •  5
  •   Maximilian Mayerl    16 年前

    好吧,正如你已经说过的,光是集会是没用的。

    您需要运行时环境,包括抖动、类型加载器、垃圾收集器等。

        3
  •  3
  •   Justin Niessner    16 年前

    .NET是一个及时解释的语言。程序集不能编译为二进制可执行文件。

    因此,需要安装.NET运行时,以便在运行时解释代码。没有它……你的应用不会做很多事情。