下面是设置:
我们开发了一个公共库,所有开发人员都可以在任何新应用程序或对旧应用程序的简单更改上使用它。当我们进行更改时,如果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.1DLL,机器配置告诉它加载4.0DLL。
处理这个问题的最佳方法是什么?您必须记住,解决一个关键问题并使用publisher策略文件将旧版本重定向到较新的次要版本的可能性已经存在,因此必须有一个解决方案来解释这一点(除非我们决定不考虑这个问题,而只对关键问题进行修复)。
有什么想法?意见?建议?
发布于 2009-08-26 16:32:49
好吧,在配置相同的领域中,我能想到的最好的事情就是使用自定义部分。它会稍微改变您的结构,但是这样您就可以在混合中拥有自己的属性(如LatestVersion=true ),从而消除一些混乱。
MSDN -自定义配置
代码项目-自定义配置
https://stackoverflow.com/questions/1335897
复制相似问题