代码之家  ›  专栏  ›  技术社区  ›  Daniel Schaffer

在Visual Studio项目中引用使用ILMerge创建的程序集

  •  5
  • Daniel Schaffer  · 技术社区  · 16 年前

    • Foo.Core :核心功能
    • Foo.Api :生成的代码构建在核心之上
    • Foo.Web :特定于Web的扩展
    • Foo.Web.Mvc
    • Newtonsoft.Json :第三方库

    我想用ILMerge合并 , Newtonsoft.Json Foo . 这是最简单的部分。

    我遇到的问题是 网页 Foo.Web.Mvc

    如果我引用原始程序集,则在我执行ILMerge后它们将具有无效引用。

    我试过创建一个名为 ,它引用3个合并的程序集,并用ILmerged程序集替换自己的输出,但这似乎根本不起作用。

    2 回复  |  直到 16 年前
        1
  •  3
  •   Jonathan Oliver    15 年前

    我知道我来的太晚了,但我们一直在努力解决同样的问题,这就是我们解决问题的方法。

    首先,我们编辑了所有未合并或附属项目的csproj文件,以使用 conditional reference

    1. 构建解决方案。
    2. 重新生成解决方案,但这次由于合并的程序集存在,非合并的程序集或附属程序集现在将具有正确的引用。
        2
  •  2
  •   Community Mohan Dere    9 年前

    我猜你得设置一个 PostBuildEvent 在主程序集/项目上( Foo.Api PreBuildEvent 在你的 Foo.Web Foo.Web.Mvc 生成合并的项目 Foo 将在您的 Foo.Web.Mvc

    通过设置MsBuild任务,可以在Visual Studio中使其更加集成。一个 sample (来自 Stackoverflow

    推荐文章