假设我有.net程序集A.dll使用第三方.net程序集B.dll和第三方.net程序集C.dll。
事实证明,内部B.dll使用非托管程序集D.dll(版本1) 和C.dll使用非托管程序集D.dll(版本2)。
B和C来自不同的供应商,仅使用正确版本的D.dll进行测试。
如何部署A使B和C正常工作?
编辑:
我认为有三个不同的问题:
1)如何从外部控制用于寻找D的路径B和C.
2)如何从外部控制D用于其自身依赖的路径。
3)如何确保进程正确引导函数调用。
我的研究表明,如果不对所有模块进行编译时控制,这可能是不可能的......
答案 0 :(得分:1)
我会尝试通过“探测”配置部分配置几个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文件夹中。