【问题标题】:build single file application构建单文件应用程序
【发布时间】:2010-06-08 22:16:18
【问题描述】:

我正在尝试合并两个文件。其中一个是 .net3.5 wpf 应用程序,另一个是 WPF notify icon dll

我使用以下命令:

IlMerge /target:winexe /out:PS.exe "PlayerSearcher.exe" "Hardcodet.Wpf.TaskbarNotification.dll"

但是当我启动结果程序集时,我的应用程序因此错误而崩溃

事件类型:clr20r3 P1:ps.exe
P2:1.0.0.0 P3:4c0ee52f P4 : 演示框架 P5 : 3.0.0.0 P6:4938d608 P7:9a1 P8:46 P9:system.io.ioexception

为什么?以及如何构建单文件应用程序?

【问题讨论】:

  • 请注意,无法使用 ILMerge 合并 WPF 程序集(最高版本 2.11.0502)

标签: c# .net wpf ilmerge


【解决方案1】:

只是猜测,但您可能需要合并其他参考。例如,也许您也将 someelse.dll 与 EXE 一起复制到项目的 bin 文件夹中而忘记包含它?

不过,您不需要从 GAC 合并 .NET Framework 程序集,除非“复制本地”真/假设置存在问题:

现在,您修改的项目将 自动引用所有 程序集合并。只有 标记为“复制本地”的程序集将 合并so系统程序集和GAC 默认情况下不会合并程序集。

-- http://blogs.msdn.com/b/jomo_fisher/archive/2006/03/05/544144.aspx

也许,只是为了调试它,尝试将 .NET Framework 类本地复制到您的项目中,然后将它们合并以查看是否有效。这可能有助于开始隔离错误。

【讨论】:

  • 但我必须复制哪些课程? PresentationCore、WindowsBase 等?
  • 您需要使用的不是类,而是程序集。我建议查看 VS 或对话框中的引用节点并将所有引用设置为 Copy Local,然后在程序集的整个 bin 文件夹上使用 MSIL。本文提供了一些有关如何管理程序集的指导:msdn.microsoft.com/en-us/library/wkze6zky(VS.80).aspx
猜你喜欢
  • 2018-10-26
  • 1970-01-01
  • 1970-01-01
  • 2018-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-10
相关资源
最近更新 更多