【问题标题】:How to manage version dependencies in a C#/.NET Project?如何管理 C#/.NET 项目中的版本依赖关系?
【发布时间】:2012-01-01 13:23:02
【问题描述】:

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

Project A 
    => Project B
        => Project C
    => Project D
        => Project C
    => Project E
        => Project C, v2

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

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

【问题讨论】:

标签: .net dependencies reference


【解决方案1】:

从长期解决方案来看,不确定这是否适用于您的环境,但我们有多个依赖项目(从框架到依赖系统)可供参考。我们使用 subversion 并使用 externals 来引用 libary/source 文件夹,以便所有依赖项目引用相同的版本。

我们也有一些项目,我们引入了依赖库,这些依赖库在编译时可能使用了旧版本,而不是主引用应用程序包含的更新和向后兼容的共享库,在这种情况下,我们使用 multiple version solution使用配置条目。

我们实际上有我们的构建过程标记(其中 _BUILD_VERSION_ 被具有当前构建号的构建过程替换):

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="Company.DependentAssembly" publicKeyToken="8510b56c219df72e"/>
            <bindingRedirect oldVersion="1.0.0.0-99.0.0.0" newVersion="_BUILD_VERSION_"/>
        </dependentAssembly>

同一篇文章还提供了一种引用项目中相同程序集的多个版本副本的方法。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-24
  • 2015-06-06
  • 2013-12-21
  • 2023-03-31
  • 1970-01-01
相关资源
最近更新 更多