4

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

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

4

4 回答 4

12

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

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

于 2010-10-22T07:04:17.300 回答
2

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

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

于 2010-10-22T07:27:42.197 回答
1

您可以为此使用 .net,查看Packaging 命名空间,或者如果您可以使用 gzip 格式,您也可以为此提供一个。使用它,您将从项目中删除依赖项。

于 2010-10-22T07:09:09.190 回答
0

如果它是一个开源项目,你可以在你的项目中包含源代码而不添加对“dll”的引用。

于 2010-10-22T07:05:03.473 回答