删除应用程序的DLL依赖项

时间:2010-10-22 07:01:22

标签: c# dependencies dotnetzip

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

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

4 个答案:

答案 0 :(得分:12)

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

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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