Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.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
C# 用户设置未加载,调试模式下除外_C#_Settings - Fatal编程技术网

C# 用户设置未加载,调试模式下除外

C# 用户设置未加载,调试模式下除外,c#,settings,C#,Settings,我有一个困扰我好几天的问题: 我已经通过设计器定义了几个用户设置。在我的应用程序中,我可以按照预期读取、更新和保存值,但前提是我使用F5以调试模式启动应用程序 如果我在没有调试的情况下启动我的应用程序,使用Ctrl+F5(或双击.exe文件),我仍然有我的设置,但它们都是空字符串!如果我用F5重新启动它,一切又恢复正常了 看起来,使用Ctrl+F5时,应用程序将以一个空的配置文件启动 有人遇到过此问题吗?如果启用了Visual Studio宿主进程,则您有两个不同的Settings.Settin

我有一个困扰我好几天的问题:

我已经通过设计器定义了几个用户设置。在我的应用程序中,我可以按照预期读取、更新和保存值,但前提是我使用F5以调试模式启动应用程序

如果我在没有调试的情况下启动我的应用程序,使用Ctrl+F5(或双击.exe文件),我仍然有我的设置,但它们都是空字符串!如果我用F5重新启动它,一切又恢复正常了

看起来,使用Ctrl+F5时,应用程序将以一个空的配置文件启动


有人遇到过此问题吗?

如果启用了Visual Studio宿主进程,则您有两个不同的Settings.Settings文件-一个用于发布模式,另一个用于调试模式。您可以更改此行为并在这些模式之间“共享”一个设置文件:转到项目属性->调试,然后取消选中“启用Visual Studio宿主进程”


有关签出此页面的详细信息:

如果启用了Visual Studio宿主进程,则您有两个不同的Settings.Settings文件-一个用于发布模式,另一个用于调试模式。您可以更改此行为并在这些模式之间“共享”一个设置文件:转到项目属性->调试,然后取消选中“启用Visual Studio宿主进程”


有关更多信息,请查看此页面:

您是如何设置设置的?使用代码或内部VS?您的发布版本与调试版本不同,并且具有不同的配置文件。谢谢大家的回复。荷兰人:我定义并设置了里面的值。马特·伯兰:我甚至没有编译一个发布版本。我只是不小心按了Ctrl+F5而不是F5,然后看到了这个问题。然后我双击调试文件夹中的.exe文件,发现问题仍然存在,我不知道如何解决它。您是如何设置的?使用代码或内部VS?您的发布版本与调试版本不同,并且具有不同的配置文件。谢谢大家的回复。荷兰人:我定义并设置了里面的值。马特·伯兰:我甚至没有编译一个发布版本。我只是不小心按了Ctrl+F5而不是F5,然后看到了这个问题。然后我双击了Debug文件夹中的.exe文件,发现问题仍然存在,我不知道如何解决它。当我按照你的建议去做时,情况变得更糟。也就是说,无论我如何启动应用程序,使用F5或Ctrl+F5,我的设置总是会得到空白值。有人能复制这种行为吗?我不是在我通常的环境中工作,只有一台笔记本电脑可用,因此我没有任何东西可与之比较,以查看它是否只是我的VS(2010)或是在我的应用程序中。具有用户范围的设置存储在两个文件中。设计器中设置的默认值存储在app.config文件中,更改存储在user.config文件中(在AppData文件夹中)。如果两个文件中都存在设置,则将使用user.config中的值。我认为user.config文件中存储了空值,默认值被覆盖。检查您的保存方法是否正常工作,以及您的user.config是否已适当更新。您是对的,我使用的user.config文件不正确。其中有两个:一个在文件夹中…\ProjectName.exe\u。。。另一个在…\ProjectName.vshost.e\u中。。。第一个是在我没有调试的情况下启动我的应用程序时使用的(Ctr+F5),当我按F5时,使用的是user.config的第二个版本。所以,这不是一个错误,只是设计的正常行为。我不知道这一点,我必须感谢您今天学习了一些新的东西。这是出于设计,在VS2019中仍然会发生这种情况,我可以添加以下内容:假设您编写了自己的设置Property Collection派生对象,在Default.Settings之外,比如Default.MySettings。它正确地存储在\AppData中,但该对象将不包含在exe.config中,并且它也将无法通过Visual Studio访问。检查内容的唯一方法是转储它,使用程序中的“编辑设置”对话框(如果有)或在\AppData中查找它(在某处)。我用自己的备份/恢复解决了这个问题。当我按照你的建议做时,情况会变得更糟。也就是说,无论我如何启动应用程序,使用F5或Ctrl+F5,我的设置总是会得到空白值。有人能复制这种行为吗?我不是在我通常的环境中工作,只有一台笔记本电脑可用,因此我没有任何东西可与之比较,以查看它是否只是我的VS(2010)或是在我的应用程序中。具有用户范围的设置存储在两个文件中。设计器中设置的默认值存储在app.config文件中,更改存储在user.config文件中(在AppData文件夹中)。如果两个文件中都存在设置,则将使用user.config中的值。我认为user.config文件中存储了空值,默认值被覆盖。检查您的保存方法是否正常工作,以及您的user.config是否已适当更新。您是对的,我使用的user.config文件不正确。其中有两个:一个在文件夹中…\ProjectName.exe\u。。。另一个在…\ProjectName.vshost.e\u中。。。第一个是在我没有调试的情况下启动我的应用程序时使用的(Ctr+F5),当我按F5时,使用的是user.config的第二个版本。所以,这不是一个错误,只是设计的正常行为。我不知道这一点,我必须感谢您今天学习了一些新的东西。这是出于设计,在VS2019中仍然会发生这种情况,我可以添加以下内容:假设您编写了自己的设置Property Collection派生对象,在Default.Settings之外,比如Default.MySettings。它正确地存储在\AppData中,但该对象将不包含在exe.config中,并且它也将无法通过Visual Studio访问。检查内容的唯一方法是转储它,使用程序中的“编辑设置”对话框(如果有)或在\AppData中查找它(在某处)。我打滚