公共库和System.Configuration命名空间

时间:2009-08-26 16:18:12

标签: c# .net .net-2.0 common-library

以下是设置:

  

我们有一个共同的图书馆   所有人都使用的   开发人员对任何新应用程序或   旧的不仅仅是微不足道的变化   应用。当我们做出改变时,   我们上了次要版本号(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.1 dll而机器配置告诉它加载版本4.0 dll。

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

思考?意见?建议?

1 个答案:

答案 0 :(得分:0)

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

MSDN - Custom Configurations

Code Project - Custom Configurations