我有一个使用< appSettings>的预先存在的应用程序使用ConfigurationManager.AppSettings访问的几个键。此应用程序的一个组件恰好是使用J#构建的java代码,它使用java.util.prefs.Preferences来加载和保存一些用户首选项。
最近,我们添加了一些新配置,并选择使用设计器生成的< applicationSettings>用于新设置。但是现在应用程序在启动时失败并出现此异常:
System.Configuration.ConfigurationErrorsException这是一个错误 使用注册为allowExeDefinition =' MachineToApplication' 超出应用程序,在用户的配置中。 (这是默认值 行为如果没有指定) (C:\ Users \用户名\应用程序数据\本地\ COMPANY \ BIGLONGSTRING \ user.config 第3行) System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(布尔 ignoreLocal)at System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors()at System.Configuration.ClientConfigurationSystem.OnConfigRemoved(对象 sender,InternalConfigEventArgs e)
" user.config"命名文件包含< appSettings>内的java用户首选项键。部分。
似乎applicationSettings解析器是抛出异常的解析器,因为它只在添加新设置后出现。我知道appSettings部分被定义为allowExeDefinition =' MachineToApplication'所以在技术上无法存在用户配置文件。但是,此文件的存在并不妨碍我使用ConfigurationManager.AppSettings从app.config文件获取值。 user.config仅通过java prefs 读取 。
我有什么方法可以配置我的应用程序,以便applicationSettings解析器(类型=" System.Configuration.ClientSettingsSection,System,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089" ,由设计者插入)将忽略user.config appSettings部分?我不明白为什么它甚至解析部分applicationSettings之外的任何东西。
FWIW:我们正在瞄准.Net Framework 3.5。