相关疑难解决方法(0)

如何在C#/ .NET项目中管理版本依赖项?

假设您有项目A,并且它具有各种dll依赖项,但树看起来像这样:

Project A 
    => Project B
        => Project C
    => Project D
        => Project C
    => Project E
        => Project C, v2
Run Code Online (Sandbox Code Playgroud)

有没有办法使用Project E,因为它依赖于较新版本的Project C(dll),即使项目的其余部分使用的是同一个库的旧版本?

如果没有办法,或者会导致咬牙切齿的方法,是否有一种前瞻性的解决方案来防止这种情况在未来的项目中发生?

.net dependencies reference

8
推荐指数
1
解决办法
1626
查看次数

C#如何引用不同版本的依赖关系

我面临以下问题(或者一个挑战,如果有人喜欢这样称呼它):在我们的 C# 桌面应用程序中,我们有两个额外的数据处理库供应商(都是用 MATLAB 开发的,虽然版本不同)。每个库都依赖于 MathWorks 的 MWArray.dll,每个库都需要不同的版本。

让我向您展示一下情况的草图: 在此处输入图片说明

我确定的(经过测试)是:

  • 两个库都可以单独调用,没有任何问题
  • 两个版本的MRC(Matlab Runtime Compiler)可以共存,不会造成干扰问题(见上)
  • 针对旧版本 MWArray.dll 编译的库不能与较新版本一起使用

我已经尝试过的:

    <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)

c# dependency-management

5
推荐指数
1
解决办法
762
查看次数