Mik*_*ike 5 c# dependency-management
我面临以下问题(或者一个挑战,如果有人喜欢这样称呼它):在我们的 C# 桌面应用程序中,我们有两个额外的数据处理库供应商(都是用 MATLAB 开发的,虽然版本不同)。每个库都依赖于 MathWorks 的 MWArray.dll,每个库都需要不同的版本。
我确定的(经过测试)是:
我已经尝试过的:
搜索 SO 类似的问题 - 他们要么解决一阶依赖歧义(而我的问题是二阶依赖歧义),要么处理(向后)兼容或开源的库的问题,因此那些不能解决我的问题问题:
使用程序集运行时绑定 - 我的 App.config 文件丰富了:
<runtime>
<assemblybinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentassembly>
<assemblyidentity name="MWArray" publickeytoken="e1d84a0da19db86f" />
<bindingredirect oldVersion="0.0.0.0-2.17.0.0" newVersion="2.17.0.0" />
<codebase version="2.17.0.0" href="C:\Windows\Microsoft.NET\assembly\GAC_MSIL\MWArray\v4.0_2.17.0.0__e1d84a0da19db86f\MWArray.dll" />
<codebase version="2.18.0.0" href="C:\Windows\Microsoft.NET\assembly\GAC_MSIL\MWArray\v4.0_2.18.0.0__e1d84a0da19db86f\MWArray.dll" />
</dependentassembly>
</assemblybinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)
同样 - 需要到达 MWArray 的不是我的代码,而是我引用的供应商代码。
您是否尝试过依赖重定向?这是来自的一段代码Web|App.config
:
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.1" newVersion="4.0.3.1" />
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
762 次 |
最近记录: |