WPF。将DLL嵌入EXE

时间:2013-02-18 16:01:40

标签: wpf dll embed exe

我希望将DLL嵌入到我的WPF应用程序的EXE中,这样我实际上只有1个文件可以分发,即.EXE。所有这些都完全超出了我的想法,但我已经按照http://richarddingwall.name/2009/05/14/wpf-how-to-combine-mutliple-assemblies-into-a-single-exe/中列出的步骤进行了操作,但我仍然无法使用它。对此有何想法或帮助?只要DLL与EXE在同一个文件夹中就可以工作但如果我删除了DLL,它就会失败。但是,我不希望DLL完全存在,而是嵌入在EXE中。我在这里搜索了推荐这个解决方案的其他帖子,但我的问题是所有内容编译都很好,只是它不起作用而且我不知道如何修复它。

1)我已将有问题的DLL作为资源添加到项目中,并将其Build Action设置为Embedded Resource

2)上面链接中概述的代码,我已经添加到App.xaml.cs文件以及使用System.Reflection& System.IO

我应该做些什么才能让它发挥作用?

由于

Shav

2 个答案:

答案 0 :(得分:1)

您可以使用ILMerge。我们一直使用它将dll合并到可执行文件和其他库中。

以下是someone else如何使用ILMerge来完成此任务,因此这可能被认为是一个重复的问题。

答案 1 :(得分:1)

如果您正在使用带有Nuget的Visual Studio,您只需将所需的引用设置为“copy local = true”并安装Fody.Costura

根据项目页面上提供的文档(如果需要,还可以整理构建目录),您可以使用简单的xml文件稍微改进一下。