Multiple versions of same assembly dll in one process/directory
I'm trying to solve problem-related to the deployment of dll libraries, below assumptions:
- I have an application which loads plugins from dll-s.
- The product of my team is Wix installer that should install additional plugins to that application.
- 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. - 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.
- 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
- GAC - version control based on the global cache, issues:
- I cannot sign the Base application, nor load assemblies dynamically, so
solution from:
How to fix "Referenced assembly does not have a strong name" error?
Won't work
- I cannot sign the Base application, nor load assemblies dynamically, so
- 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.
- The prototype works as expected but we found two issues:
I'm looking for an alternative approach to solve that issue, any help appreciated.
c# .net vb.net visual-studio dll
add a comment |
I'm trying to solve problem-related to the deployment of dll libraries, below assumptions:
- I have an application which loads plugins from dll-s.
- The product of my team is Wix installer that should install additional plugins to that application.
- 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. - 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.
- 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
- GAC - version control based on the global cache, issues:
- I cannot sign the Base application, nor load assemblies dynamically, so
solution from:
How to fix "Referenced assembly does not have a strong name" error?
Won't work
- I cannot sign the Base application, nor load assemblies dynamically, so
- 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.
- The prototype works as expected but we found two issues:
I'm looking for an alternative approach to solve that issue, any help appreciated.
c# .net vb.net visual-studio dll
add a comment |
I'm trying to solve problem-related to the deployment of dll libraries, below assumptions:
- I have an application which loads plugins from dll-s.
- The product of my team is Wix installer that should install additional plugins to that application.
- 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. - 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.
- 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
- GAC - version control based on the global cache, issues:
- I cannot sign the Base application, nor load assemblies dynamically, so
solution from:
How to fix "Referenced assembly does not have a strong name" error?
Won't work
- I cannot sign the Base application, nor load assemblies dynamically, so
- 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.
- The prototype works as expected but we found two issues:
I'm looking for an alternative approach to solve that issue, any help appreciated.
c# .net vb.net visual-studio dll
I'm trying to solve problem-related to the deployment of dll libraries, below assumptions:
- I have an application which loads plugins from dll-s.
- The product of my team is Wix installer that should install additional plugins to that application.
- 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. - 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.
- 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
- GAC - version control based on the global cache, issues:
- I cannot sign the Base application, nor load assemblies dynamically, so
solution from:
How to fix "Referenced assembly does not have a strong name" error?
Won't work
- I cannot sign the Base application, nor load assemblies dynamically, so
- 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.
- The prototype works as expected but we found two issues:
I'm looking for an alternative approach to solve that issue, any help appreciated.
c# .net vb.net visual-studio dll
c# .net vb.net visual-studio dll
edited Nov 15 '18 at 8:06
mjpolak
asked Nov 14 '18 at 12:24
mjpolakmjpolak
366315
366315
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53300187%2fmultiple-versions-of-same-assembly-dll-in-one-process-directory%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53300187%2fmultiple-versions-of-same-assembly-dll-in-one-process-directory%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown