我正在sharpdevelop 3.2中开发一个网络紧凑框架项目。 它工作得很好,但必须有像火鸟网提供商和我使用的其他程序集的dll,当我运行它时在exe文件夹内。 如何将所有这些dll嵌入到exe中,将其嵌入到一个exe文件中,而不需要将它们复制粘贴到我运行exe文件夹的文件夹中?
答案 0 :(得分:-1)
我最常用于此类事情的方法是将程序集作为资源添加到EXE,然后为AssemblyResolve
事件添加处理程序以将程序集从资源解压缩到内存并从那里加载。
使用AssemblyResolve
的好处在于,如果需要,您可以使用磁盘上的实际程序集覆盖资源绑定程序集,因为它无法调用AssemblyResolve
,直到找不到它为止通过正常方式组装。如果您希望强制它始终加载资源,请改为挂钩AssemblyLoad
。
您还可以压缩资源以减少膨胀,从而节省总的部署字节数。