1

I'm trying to solve problem-related to the deployment of dll libraries, below assumptions:

  1. I have an application which loads plugins from dll-s.
  2. The product of my team is Wix installer that should install additional plugins to that application.
  3. We are using additional common dll libraries that are referenced in plugins from point 2 (for example Common.Forms). They may be used by more than one plugin.
  4. There may be a gap between the release of plugin A and B, both of them may refer to a different version of common libraries.
  5. Common libraries may refer to dll-s of Base application. Base application is not strongly named.

Issue:

If we try to install plugin A and then B, then the common library will be replaced with never version, which may be incompatible with plugin A. As a result plugin A won't work.

What I already tried

  1. GAC - version control based on the global cache, issues:
  2. Fody costura - embedding common libraries in plugins
    • The prototype works as expected but we found two issues:
      • Costura will work only if dll was not found by Base Application, so if there is dll file that was installed with the previous plugin, and file exists in root directory - then it will be loaded instead of expected embedded version. That may be solved by renaming Libraries from given version to avoid conflicts.
      • This will require to add Cody fostura to all plugins and will require a lot of manual work with the setup.

I'm looking for an alternative approach to solve that issue, any help appreciated.

mjpolak
  • 721
  • 6
  • 24

0 Answers0