I've most commonly heard ilmerge
being used as a way to merge a bunch of dlls into a single executable file, to aid distribution of desktop applications.
Is it also viable to use it as a way to enforce dependency chains in a class library?
For example, assuming I have three components:
* dllA
* dllB
* dllC
whose dependency chains are:
* dllA -> dllC
* dllA -> dllB
* dllB -> dllC
Now if dllC
is rev'd to a new version v1
to v2
, is it possible for dllA
to be forced to use dllC_v1
while dllB
is forced to use dllC_v2
?
* dllA -> dllC_v1
(dllC_v1 is ilmerged into dllA)
* dllA -> dllB -> dllC_v2
(dllC_v2 is ilmerged into dllB)
Also, how does versioning configuration work in this scenario? If dllC
relies on a config section to be defined in web/app.config
, and it's expectation of config schema/keys differs between dllC_v1
and dllC_v2
, what happens then?