Vb.net SettingsPropertyNotFoundException-尝试允许用户向配置文件添加新的键和值

Vb.net SettingsPropertyNotFoundException-尝试允许用户向配置文件添加新的键和值,vb.net,winforms,dynamic,app-config,appsettings,Vb.net,Winforms,Dynamic,App Config,Appsettings,我有一个为不同公司配置的应用程序 看起来像这样: <setting name="Instances" serializeAs="String"> <value>2</value> </setting> <setting name="Instance_1_ExportTo" serializeAs="String"> <value>a/gp_import/</value> </setting

我有一个为不同公司配置的应用程序

看起来像这样:

<setting name="Instances" serializeAs="String">
    <value>2</value>
</setting>

<setting name="Instance_1_ExportTo" serializeAs="String">
    <value>a/gp_import/</value>
</setting>
<setting name="Instance_1_ImportFrom" serializeAs="String">
    <value>a/gp_export/</value>
</setting>
<setting name="Instance_1_CompanyID" serializeAs="String">
    <value>WCAIR</value>
</setting>
<setting name="Instance_1_Name" serializeAs="String">
    <value>a</value>
</setting>

<setting name="Instance_2_ExportTo" serializeAs="String">
    <value>import/</value>
</setting>
<setting name="Instance_2_ImportFrom" serializeAs="String">
    <value>export/</value>
</setting>
<setting name="Instance_2_CompanyID" serializeAs="String">
    <value>BEAVE</value>
</setting>
<setting name="Instance_2_Name" serializeAs="String">
    <value>b</value>
</setting>

2.
a/gp\U导入/
a/gp\U出口/
WCAIR
A.
进口/
出口/
比夫
B
现在,如果我把所有这些,包括1和2放进VisualStudio,编译并运行它,一切都很好

但是,如果用户将“实例”更改为3,并在应用程序运行时复制和粘贴它们以使其成为“实例3…”,则它会尝试加载实例3_名称并获取一个属性not found exception。。。?设置属性NotFoundException

有什么帮助吗?如何告知我的应用程序配置文件已更改?还是必须重新编译


属性确实存在,配置文件正在从实例数中加载“3”,但我想这是因为编译时它不在那里,所以它不存在?

修改配置后,需要强制重新读取配置

如果您有时间创建一个自定义app.config配置部分,那么您可能会发现这是一个有利的追求。此外,您可能需要考虑如何触发刷新。用户是否需要单击刷新按钮,或者您是否计划使用计时器?您还可以添加一个文件系统监视程序,但这并不像上面提到的其他两种技术那样简单