【问题标题】:Remove DLL dependency for an Application删除应用程序的 DLL 依赖项
【发布时间】:2011-04-29 00:26:57
【问题描述】:

在我的应用程序中,我需要压缩和解压缩一些文件。为此,我使用了 DotNet Zip 库(Ionic.Zip.dll--DotNet Zip Lib

一切正常,但是当我从我的文件中提取 EXE 并尝试从不同的文件夹运行它时,它无法运行。我必须将 Ionic.Zip.dll 保存在我的应用程序所在的文件夹中。 有什么出路吗?我只想要一个没有任何附加条件的EXE文件...... 或者除了 DotNet Zip Lib 之外还有其他选择吗?

【问题讨论】:

    标签: c# dependencies dotnetzip


    【解决方案1】:

    当您向 C# 项目添加对另一个程序集(例如第三方 DLL)的引用时,编译器不会将该程序集的内容添加到您的 EXE 中;它只是创建一个链接,说明您的程序在运行时需要加载该 DLL。将 .NET 程序作为 EXE 文件和所需的 DLL 文件分发是很正常的。

    但是,如果您愿意,可以将它们合并为一个 EXE 文件。有几种不同的工具可以将多个 .NET 程序集合并为一个。看看ILMerge.NETZ

    【讨论】:

    • 只有直接解决问题的答案 - 虽然没有解释问题是什么(-:
    • @Murph:试图解释
    • 这个解决方案可以适用于任何有这个问题的应用程序......所以我编辑了帖子的标题......太好了!非常感谢!!现在我不必提供 DLL……..
    【解决方案2】:

    看看这个没有外部依赖的纯 C# 库:

    它可以包含在您的应用程序中并直接编译到您的单个 EXE 中 - 无需外部 ZIP 库。

    【讨论】:

      【解决方案3】:

      您可以为此使用 .net,查看 Packaging namespace,或者如果您可以使用 gzip 格式,您也可以使用 class。使用它,您将从项目中删除依赖项。

      【讨论】:

      【解决方案4】:

      如果是开源项目,您可以只在项目中包含源代码,而无需添加对“dll”的引用。

      【讨论】:

      • 真的,这是可能的。但最好使用 ILMerge 或其他一些合并或嵌入机制。
      猜你喜欢
      • 2014-01-29
      • 2011-12-05
      • 1970-01-01
      • 1970-01-01
      • 2015-06-11
      • 1970-01-01
      • 1970-01-01
      • 2012-07-10
      • 2018-09-15
      相关资源
      最近更新 更多