【问题标题】:WPF. Embed DLL into EXEWPF。将DLL嵌入EXE
【发布时间】:2013-02-03 02:53:55
【问题描述】:

我希望将 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 作为资源添加到项目中,并将其构建操作设置为嵌入式资源

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

我应该做些什么来让它工作?

谢谢

剃须

【问题讨论】:

  • 您好 Jonathon,我尝试使用 NETz 但无法正常工作。其他一些您必须支付的费用。这就是为什么我发布这个问题,看看是否有办法解决/修复我概述的方法。

标签: wpf dll embed exe


【解决方案1】:

如果您使用的是带有 Nuget 的 Visual Studio,您只需将所需的引用设置为“复制本地 = true”并安装 Fody.Costura

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 嗨 Smoore,根据我在网上发现的情况,ILMerge 不适用于 WPF 项目。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-26
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多