【问题标题】:ILMerge and Project ReferencesILMerge 和项目参考
【发布时间】:2010-06-20 11:19:48
【问题描述】:

我有一个具有以下结构的 VS 解决方案 (.sln)。

  • 项目A
  • 项目 B(包含对项目 A 的引用以及对 NHibernate、StructureMap 等第 3 方程序集的引用)

我想使用 ILMerge 将第 3 方程序集滚动到 ProjectB.dll 中。但是,我不想合并 ProjectA。

我使用了突出显示的过程here。在合并第三方程序集方面,这对我来说是无缝的。但是,我在构建 ProjectB 时仍然遇到此错误:

合并时发生异常: 不允许未解析的程序集引用:ProjectA。

我没有明确指定要合并 ProjectA。换句话说,我不会说这个项目是真的。如何让 IlMerge 忽略 ProjectA?顺便说一句,ProjectA 是项目引用,而不是直接的程序集引用。

谢谢!

【问题讨论】:

    标签: .net assemblies ilmerge


    【解决方案1】:

    为 ILMerge 使用 /lib 参数,传递包含 ProjectA.dll 的目录。

    具体来说(假设 ProjectB 的目标平台是 .NET 4.0 客户端配置文件):

    ILMerge.exe /out:MasterDll.dll
                /targetplatform:v4,"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client"
                /lib:ProjectA\bin\Release
                ProjectB\bin\Release\ProjectB.dll
                Libraries\NHibernate\NHibernate.dll
                Libraries\StructureMap\StructureMap.dll
                ...
    

    【讨论】:

      【解决方案2】:

      对于 4.0,只需使用:

      /targetplatform:v4,"%ProgramFiles%\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-24
        • 2014-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-09
        相关资源
        最近更新 更多