代码之家  ›  专栏  ›  技术社区  ›  Max Schmeling

公共库和System.Configuration命名空间

  •  0
  • Max Schmeling  · 技术社区  · 15 年前

    设置如下:

    我们有一个公共图书馆 所有人都使用的 任何新应用程序或 不仅仅是对旧事物的微小改变 应用。当我们做出改变时, 我们将次要版本号(2.0到 2.1)如果API没有被破坏,但是如果我们破坏了API,那么我们将 版本号(2.1到3.0)。有 为每个 新版本并将其部署到 提供给 开发人员需要时安装。这个 安装程序将程序集放入 服务器上的GAC,并修改 machine.config包含一些 配置信息。

    最新版本(4.0)非常频繁地使用System.Configuration命名空间(自定义配置节和配置节组),但有一个问题我没有想到,我不太确定如何解决:升级版本时,我们的版本与配置节发生冲突。

    例如,在machine.config文件中,它将用于指定应用程序名称的信息放入config部分。看起来像这样:

    <section name="application" type="CommonLibrary.Configuration.ApplicationSection, 
    CommonLibrary, Version=4.0.0.0, Culture=neutral, PublicKeyToken=sometokenhere" />
    

    现在我们有了版本4.1,这个部分定义中断了,因为应用程序正在使用版本4.1dll,而机器配置告诉它加载版本4.0dll。

    处理这个问题的最佳方法是什么?必须记住,修复一个关键问题并使用Publisher策略文件将旧版本重定向到较新的次要版本的可能性是存在的,因此解决方案必须考虑到这一点(除非我们决定不允许这样做,只对关键问题进行适当的修复)。

    思想?意见?建议?

    1 回复  |  直到 15 年前
        1
  •  0
  •   Kyle Rosendo    15 年前

    在配置相同的领域中,我能想到的最好的事情是使用自定义部分。它会稍微改变你的结构,但是这样你就可以拥有自己的属性,比如 LatestVersion=true 在混音中,消除一些混乱。

    MSDN - Custom Configurations

    Code Project - Custom Configurations