Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 为什么我的应用程序要撤消对appname.exe.config文件所做的更改?_.net_Wpf - Fatal编程技术网

.net 为什么我的应用程序要撤消对appname.exe.config文件所做的更改?

.net 为什么我的应用程序要撤消对appname.exe.config文件所做的更改?,.net,wpf,.net,Wpf,我有一个WPF应用程序,允许用户从几个特定于环境的.config文件中进行选择。为此,我部署了每个.config文件的副本,只需在现有appname.exe.config文件上复制选定环境的配置文件,然后使用ConfigurationManager刷新已更改的部分(本例中仅为appSettings)。一切都很好,我已经确认该操作确实会用正确的环境版本覆盖配置 但是,当我退出WPF应用程序时,配置文件将恢复为其原始版本。我已经确认,执行相同类型的.config文件操作的WinForms应用程序和控

我有一个WPF应用程序,允许用户从几个特定于环境的.config文件中进行选择。为此,我部署了每个.config文件的副本,只需在现有appname.exe.config文件上复制选定环境的配置文件,然后使用ConfigurationManager刷新已更改的部分(本例中仅为appSettings)。一切都很好,我已经确认该操作确实会用正确的环境版本覆盖配置

但是,当我退出WPF应用程序时,配置文件将恢复为其原始版本。我已经确认,执行相同类型的.config文件操作的WinForms应用程序和控制台应用程序不会发生这种行为。我还确认我的配置文件复制代码没有被意外地重新执行


有人知道为什么会发生这种情况吗?

这种行为是故意的

从IDE运行应用程序时,Visual Studio会将
.config
文件从项目复制到
bin
文件夹(或将项目输出到的任何位置)


在调试模式下,您必须避免弄乱配置文件。

这不是一般的行为。这在我们生产的许多WPF应用程序中都不会发生。发布相关代码。我已将相关代码提取到一个新项目中,并确认该行为不会重复,因此我同意这不是普通行为。不幸的是,我无法发布更多的原始项目,因为它的专有信息。我将开始缩小导致这种行为的功能的有限子集,看看我是否能达到既不起作用又不隐私的效果。到那时,我可能会看到原因/解决方案,但我感谢您迄今为止的指导和确认。其他信息:这似乎只有在Visual Studio(2013)中运行应用程序时才会发生。如果我从bin/debug/文件夹运行已编译的应用程序,它的行为将正确,并且.config文件将保持更改。该行为是由设计决定的。其他信息:如果我在没有调试器的情况下启动,还确认该应用程序在VS中正常工作。谢谢,我想我理解您所说的行为。。。我会做一些研究,看看为什么这会是一个理想的行为。我还没有找到任何支持在应用程序关闭时发生这种情况的东西。