我似乎无法在类似的问题中找到我正在寻找的解决方案,但这可能是因为我缺乏搜索技能。
无论哪种方式,我在C#项目中都有一个using System.Runtime.InteropServices;
,用于解压缩下载的.zip文件。
我的问题来自于以下内容:我讨厌安装程序...因此我需要一种方法将Interop.Shell32.dll
文件包含在位于项目的\ bin \ Debug文件夹中的.exe文件中。
因此,如果我不使用安装程序,则无需安装程序将Interop.Shell32.dll添加到程序的路径中,并且无需额外的文件下载以及.exe。
对我来说,最好/最有效的方法是什么? (最好不必在程序中加入额外的代码)
答案 0 :(得分:1)
您可以使用ILMerge。摘自Microsoft网页:
ILMerge是一个用于将多个.NET程序集合并到单个.NET程序集中的实用程序。它适用于可执行文件和DLL,并带有几个控制输出处理和格式的选项。
答案 1 :(得分:1)
有几种有用的工具;我不确定所寻求的是什么,所以我将提供一小部分工具/方法,我将使用它。
ILMerge用于合并多个托管程序集,例如项目输出和外部程序集/ PIA。确保合并的PIA /程序集可以这样分发或参见#3。
包含“外部数据”的嵌入式资源,包括非托管 DLL,这可能是托管程序集的外部要求。这些非托管 DLL / COM库可以在提取后在运行时绑定/加载。
dotNetInstaller用于制作统一启动器/安装程序(它是一个引导程序,可以提供嵌入式资源)。这可以与普通的MSI(VS安装项目)安装程序一起使用来处理先决条件,例如安装官方可分发软件包或它可以简单地用于启动可执行文件(除了那些之外没有“安装程序”)先决条件)。