代码之家  ›  专栏  ›  技术社区  ›  Fiona - myaccessible.website

ilmerge dll:程序集未正确合并,仍作为外部引用列出

  •  33
  • Fiona - myaccessible.website  · 技术社区  · 15 年前

    在.NET C_工具的生成过程中,我一直在使用ilmerge将程序集合并为单个exe。

    我最近添加了一个新的类库,现在ilmerge失败了。我记得告诉它合并到新的DLL中!

    现在它给了我这个错误,我不太明白:

    ilmerge.merge:程序集 “DataObjects”未合并到 正确地。它仍然被列为 目标中的外部引用 装配。

    我使用“project”引用完成的所有程序集引用在过去都没有失败。

    有人能为我解释这个错误,或者建议一个解决方法吗?

    3 回复  |  直到 6 年前
        1
  •  36
  •   Fiona - myaccessible.website    11 年前

    我必须使用 /closed 争论。根据官方文件:

    关闭

    如果在调用merge之前设置了此选项, 然后是 计算并添加输入程序集 到输入程序集列表。安 组件被视为 传递闭包(如果是) 直接引用或 间接地,从最初的 指定的输入程序集 对其中一个的外部引用 输入程序集,或 具有此类引用的程序集。 复杂,但这就是生活…

        2
  •  5
  •   Hugh Jeffner    8 年前

    我在尝试发布将所有输出合并到单个程序集的Web应用程序时收到类似的错误消息:

    合并程序集时出错:ilmerge.merge:目标程序集将自身作为外部引用列出。

    如果要合并的程序集名称与下的Web应用程序的程序集名称匹配,则会发生这种情况。 Properties > Application . 更改输出程序集名称应该可以修复它。

        3
  •  0
  •   drzounds    6 年前

    我得到了这个错误,它指向了我正在合并到单个dll中的microsoft.xrm.sdk引用。当我设置另一个引用(microsoft.xrm.sdk.deployment)并将其合并到dll中时,问题得到了解决。有趣的是,在一个单独的项目中,我进行了第一个引用合并,而第二个部署dll没有合并,它一点也没有抱怨。