我们已经创建了一个WinForms应用程序并通过ConfigurationManager类存储了一些配置。为了存储我使用的信息
Configuration pConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
pConfig.AppSettings.Settings.Add("updates", szUpdatesURL);
pConfig.Save(ConfigurationSaveMode.Modified);
这里的问题是,在某些情况下,应用程序会创建一个“appname”.config文件,在其他情况下会创建一个“appname”.exe.config。
我必须注意,默认情况下不会发送配置文件,因为并非总是需要它。
第一次执行程序时保存配置。这导致了我们的问题,我无法指定创建其中一个或哪个的时机。
我在同一台电脑上执行了测试,使用完全相同的.exe,我得到了两个结果。这里发生了什么?
两者之间有什么区别,我该如何指定应该创建哪一个? 非常感谢
答案 0 :(得分:27)
编译应用程序时会自动为您创建“appname.exe.config”。这是应该分发给最终用户的文件(当然还有exe文件)。您在appname.config中设置的设置将传输到appname.exe.config。
They are essentially the same files
。 appname.config存在的原因是因为在运行可执行文件时,它的配置文件很简单,可执行文件的名称带有.config
后缀。但是,如果可执行文件的名称已更改,则必须手动更改exe.config文件的名称。因此,通过在编译时自动重命名,app.config可以将其名称更改为newappname.exe.config文件,CLR仍然可以将其取出。您可能会发现appname.exe.config文件是在bin目录中创建的。
我希望这很明确:)下面的链接可以更深入地解释它。