.net - 当非托管依赖项发生冲突时如何使用 2 个第三方 .net 库?

标签 .net windows deployment dll

假设我有一个使用第三方 .net 程序集 B.dll 和第三方 .net 程序集 C.dll 的 .net 程序集 A.dll。

事实证明,B.dll 内部使用非托管程序集 D.dll(版本 1) C.dll 使用非托管程序集 D.dll(版本 2)。

B 和 C 来自不同的供应商,仅使用其正确版本的 D.dll 进行测试。

如何部署 A 以使 B 和 C 正常工作?

编辑:

我认为存在三个不同的问题:

1) 如何从外部控制 B 和 C 寻找 D 的路径。

2) 如何从外部控制 D 用于其自身依赖项的路径。

3) 如何确保流程正确引导函数调用。

我的研究表明,如果没有对所有模块的编译时控制,这可能是不可能的...

最佳答案

我会尝试通过“探测”配置部分来配置多个 bin 文件夹。

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <probing privatePath="bin;bin\B;bin\C"/>
      </assemblyBinding>
   </runtime>
</configuration>

然后我会将 B.dll 及其非托管依赖项放入 bin\B 文件夹,将 C.dll 及其非托管依赖项放入 bin\C 文件夹。

关于.net - 当非托管依赖项发生冲突时如何使用 2 个第三方 .net 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7433406/

相关文章:

javascript - 为什么我的非常简单的 Chrome 扩展程序在 Mac 上运行,但在 PC 上运行不正常?

java - 从环境变量中的用户帐户指向 JDK

ruby-on-rails - rails 环境 mongoid 连接问题

mysql - 显示数据从dataGrid到Crystal report vb.net

c# - 设置 Webview2 header 或 cookie

c# - .Net 世界中类似 FIT 的测试

google-cloud-platform - 创建触发器时如何在云构建中添加替换变量?

c# - 可以使用 MSBuild + .csproj 文件创建 msi 安装程序吗?

python - 在 Windows 上为 Python 安装 Pillow

c# - 无法加载文件或程序集 'microsoft.sqlserver.batchparserclient'