所以,我的项目进行得很好。然而,在我清理和重建它之后,configurationManager就停止工作了。实际上,在调试时,我可以看到ConfigurationManager.AppSettings在有四个条目之前没有条目。
我猜configurationManager不是在寻找它应该查找的文件,它很可能是在清理过程中被删除的。有没有任何方法可以知道它在哪里搜索配置条目?
编辑:所以,我看了一下Procmon,它似乎正在搜索正确的配置文件,在与可执行文件相同的文件夹中。该文件如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="Subtitle_Synchronizer.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<userSettings>
<Subtitle_Synchronizer.Properties.Settings>
<setting name="AegisubPath" serializeAs="String">
<value />
</setting>
<setting name="CheckActors" serializeAs="String">
<value>False</value>
</setting>
<setting name="PostProcessSubs" serializeAs="String">
<value>False</value>
</setting>
<setting name="WorkingFolderPath" serializeAs="String">
<value>c:\</value>
</setting>
</Subtitle_Synchronizer.Properties.Settings>
</userSettings>
</configuration>发布于 2015-06-24 01:33:56
所以,我解决了这个问题,虽然没有任何意义。如果我在没有调试的情况下运行,就会出现异常。但在此之后,问题就得到了“解决”,configurationManager的工作也是正确的。如果我重建解决方案,问题就会再次出现,但用这种方法又能解决问题。该死的。
编辑:想得更清楚一点。因此,在没有调试的情况下运行时抛出异常后,配置文件似乎会重新生成。它将以下内容添加到配置文件中:
<appSettings>
<add key="CheckActors" value="False" />
<add key="PostProcessSubs" value="False" />
<add key="WorkingFolderPath" value="Not Found" />
</appSettings>https://stackoverflow.com/questions/31015742
复制相似问题