如何调试ConfigurationManager

时间:2015-06-24 00:37:30

标签: c# configurationmanager

所以,我的项目工作正常。但是,在我清理并重建它之后,配置管理器停止工作。实际上,在调试时,我可以看到ConfigurationManager.AppSettings没有条目,在它有四个之前。

我猜测配置管理器没有查找它应该查找的文件,这很可能在清理过程中被删除了。有没有办法知道它在哪里搜索配置条目?

编辑:所以,我看了一下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>

1 个答案:

答案 0 :(得分:0)

所以,我有点解决了它,虽然它没有任何意义。如果我在没有调试的情况下运行,它会给出异常。但在那之后,问题就“解决了”,并且配置管理器正常工作。如果我重建解决方案,问题又会出现,但是再次使用该方法解决了。地狱。

编辑:想出更多。因此,似乎在没有调试的情况下运行时抛出异常后配置文件重新生成。它将以下内容添加到配置文件中:

 <appSettings>
    <add key="CheckActors" value="False" />
    <add key="PostProcessSubs" value="False" />
    <add key="WorkingFolderPath" value="Not Found" />
</appSettings>