首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >避免app.config中的configSection中的版本特定信息

避免app.config中的configSection中的版本特定信息
EN

Stack Overflow用户
提问于 2012-07-02 23:14:30
回答 1查看 975关注 0票数 12

我制作了一个小图形用户界面,用于管理app.config文件中的一些设置。图形用户界面是作为我的产品的一部分发布的,因此可以更改app.config文件中的值,而无需在文本编辑器中打开该文件。

这些属性是在自定义configSection中实现的,这使得它在代码中具有强类型。我的问题是,当更新app.config文件时(当我从图形用户界面保存时),我的程序集的完全限定名称在configSection中写成如下:

代码语言:javascript
复制
<section name="ConfigurationSettings" type="PerformanceDude.MSBuildShellExtension.Common.ConfigurationSettings, Common, Version=2.2.1.0, Culture=neutral, PublicKeyToken=1ab1b15115e63xxx" />

当我将此程序集升级到新版本号时,图形用户界面代码程序集版本与app.config中的程序集引用不再匹配。

这是我加载设置的方式:

代码语言:javascript
复制
var config = ConfigurationManager.OpenMappedExeConfiguration(new ExeConfigurationFileMap() { ExeConfigFilename = ConfigFilePath }, ConfigurationUserLevel.None);
var settings = Config.GetSection("ConfigurationSettings") as ConfigurationSettings;

下面是我保存设置的方法:

代码语言:javascript
复制
config.Save(ConfigurationSaveMode.Minimal, true);

我不想编写升级脚本,每次更新时都会更改版本。有没有人知道解决这个问题的好办法?

EN

回答 1

Stack Overflow用户

发布于 2012-07-03 03:40:59

我以前也做过类似的事情。我最终将配置文件加载为xml,将相关部分反序列化为对象,然后将它们放回xml中。以这种方式避免.net配置应用程序接口可以避免版本出现问题。

另一种方法是将旧版本的程序集重定向到新版本。如果您的程序集在GAC中,则可以使用策略文件来执行此操作,并在部署新版本时部署它们;然后配置中的版本号将无关紧要。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11296441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档