ILMerge Best Practices

前端 未结 12 2209
闹比i
闹比i 2020-11-28 20:19

Do you use ILMerge? Do you use ILMerge to merge multiple assemblies to ease deployment of dll\'s? Have you found problems with deployment/versioning in production after ILMe

12条回答
  •  夕颜
    夕颜 (楼主)
    2020-11-28 20:39

    I'm just starting out using ILMerge as part of my CI build to combine a lot of finely grained WCF contracts into a single library. It works very well, however the new merged lib can't easily co-exist with its component libraries, or other libs that depend on those component libraries.

    If, in a new project, you reference both your ILMerged lib and also a legacy library that depends on one of the inputs you gave to ILMerge, you'll find that you can't pass any type from the ILMerged lib to any method in the legacy library without doing some sort of type mapping (e.g. automapper or manual mapping). This is because once everything's compiled, the types are effectively qualified with an assembly name.

    The names will also collide but you can fix that using extern alias.

    My advice would be to avoid including in your merged assembly any publicly available lib that your merged assembly exposes (e.g. via a return type, method/constructor parameter, field, property, generic...) unless you know for sure that the user of your merged assembly does not and will never depend on the free-standing version of the same library.

提交回复
热议问题