【问题标题】:ILMerge and MSBuild - merged EXE is giving runtime errorILMerge 和 MSBuild - 合并的 EXE 出现运行时错误
【发布时间】:2011-12-17 20:33:47
【问题描述】:

将 ILMerge 添加到我的后期构建任务并制定命令行后,我成功获得了一个合并程序 MyMerged.exe

但是当我运行它时,我得到一个异常

未处理的异常:System.TypeLoadException: 无法从程序集“mymerged,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”加载类型“Microsoft.Build.Utilities.TaskItem”,因为方法“.ctor”没有实现(没有 RVA)。 在 MyProgram.Program.Main(String[] args)

这是 ILMerge 中的错误未处理没有构造函数的情况,还是 TaskItem 中没有构造函数的错误。

谢谢

【问题讨论】:

标签: msbuild ilmerge


【解决方案1】:

在 ILMerge 命令行中包含 Microsoft.Build.Utilities.dll,以便它与您的程序集合并并找到。

如果您定义了重复的类型并使用/allowDup 命令行开关,ILMerge 将重命名重复的类型,这也可能导致“无法加载类型...”错误和运行时的意外行为,尤其是当反射是正在使用。

【讨论】:

  • 我遇到了同样的问题。关于 /allowDup 的部分真的很有帮助,谢谢!而不是这部分“/allowDup MyMainDLL.dll .dll”只是使用了“.dll”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-15
  • 2020-12-28
  • 1970-01-01
  • 2011-05-03
  • 1970-01-01
相关资源
最近更新 更多