引用同名的DLL

时间:2019-01-14 23:29:46

标签: c# visual-studio msbuild

我的应用程序引用了Sage50 SDK,我需要支持该SDK的多个版本。

在Visual Studio中,每个版本的SDK都有自己的项目,并引用了SDK DLL。

但是,当我构建解决方案时,DLL会互相覆盖并且仅保留一个版本。

我无法重命名DLL,因为SDK会按名称加载其他DLL,并且在重命名时会出错。并且它们已签名。

我将如何处理这种情况?

1 个答案:

答案 0 :(得分:1)

  1. 使每个项目对这些不同的sage SDK程序集使用“强”引用。也就是说,确保它指定了版本,区域性和令牌等。没有比没有版本的草率引用更糟糕的了。
  2. 您将必须将项目DLL的输出输出到单独的位置。因为构建会将所有依赖项复制到输出文件夹。
  3. 由于#2,您将必须在应用程序中动态加载程序集。 (即Assembly.load(...))