0

这是设置:

我们有一个我开发的通用库,所有开发人员都可以在任何新应用程序或对旧应用程序的微不足道的更改上使用它。当我们进行更改时,如果 API 没有损坏,我们会提高次要版本号(2.0 到 2.1),但如果我们损坏 API,那么我们会提高主要版本号(2.1 到 3.0)。为每个新版本构建了一个安装程序包,并将其部署到服务器上,供开发人员在需要时进行安装。安装程序将程序集放在服务器上的 GAC 中,并修改 machine.config 以包含一些配置信息。

最新版本(4.0)使用 System.Configuration 命名空间相当多(自定义配置部分和配置部分组),但有一个我没有想到的问题,我不太确定如何解决:升级版本时,我们与配置部分有版本冲突。

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

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

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

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

想法?意见?建议?

4

1 回答 1

0

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

MSDN - 自定义配置

代码项目 - 自定义配置

于 2009-08-26T16:32:49.430 回答