问题标签 [settings.settings]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
46982 浏览

.net - .NET 桌面应用程序中的 Settings.settings 与 app.config

可能重复:
app.config 文件和 XYZ.settings 文件有什么区别?

我对 Visual Studio 中用于存储和管理桌面应用程序设置的这两种机制的明显冗余感到非常困惑:

  • 您可以使用 XMLapp.config文件,将项目添加到该<appSettings>部分。这些可以使用ConfigurationManager类从代码中检索。
  • 或者,您可以使用 Settings.settings 文件通过编辑器添加单个设置。Visual Studio 将生成一个Settings类,用于在运行时对设置进行类型安全的检索。

这两种机制似乎服务于相同(或几乎相同)的目的。我知道存在一些差异,但我也对重叠及其后果感到困惑。例如,当我使用 Visual Studio 向Settings.settings文件添加设置时,我放入的所有信息最终也会作为app.config文件中的条目。显然,存在一种同步机制:如果我更改文件中的设置,Visual Studio 会在我下次在编辑器中打开文件时app.config提示我更新文件。Settings.settings

我的问题是:

  • 为什么有两种机制而不是一种?
  • app.config使用over最常见的场景是什么Settings.settings,反之亦然?
  • 如果我的应用程序正在使用并且我在部署后Settings.settings更改了一个值,会发生什么?由于它已经被编译和分发,因此不会发生app.config同步。Settings.settings

笔记。我已经搜索过有关此主题的问题,但我更加困惑。例如,这里对这个问题的回答是相当矛盾的,并不能说明太多。

注意 2. 我知道这app.config是一个设计时文件名,并且我熟悉 Visual Studio 将其复制并重命名为可执行文件夹的动态。

0 投票
2 回答
6388 浏览

c# - 在应用程序设置中保存对象集合时遇到问题

我正在尝试在应用程序设置中存储自定义对象的集合。

这个相关问题的一些帮助下,这是我目前拥有的:

在 Settings.Settings 设计器中,我通过浏览器按钮添加了 PeopleHolder 类型的属性,并将范围设置为“用户”。Save() 方法似乎成功完成,没有错误消息,但每次我重新启动应用程序设置都没有持久化。

虽然上面的代码中没有显示,但我可以保留字符串,而不是我的自定义集合(我注意到在其他类似的问题中,有时版本号可能会出现问题,这会阻止在调试时保存设置,所以我想统治作为可能的罪魁祸首。)

有任何想法吗?我确信有一种非常简单的方法可以做到这一点,我只是想念:)。

谢谢你的帮助!

0 投票
2 回答
9900 浏览

visual-studio - 当我更改配置设置时,Visual Studio 会生成“Settings1.Designer.vb”

有时(并非总是),当我在“我的项目”页面中编辑设置时,当我添加一个或从那里编辑一个值时,我会收到一个错误:'Settings is ambiguous between declaration in Modules '<project>.My.MySettingsProperty' and '<project>.My.MySettingsProperty'

Visual Studio 创建 的副本My Project\Settings.Designer.vb,并将它们都注册到.vbproj文件中。

发生这种情况时,我需要删除 Settings.Designer.vb,删除 Settings1.Designer.vb 中的“1”,并删除 vbproj 文件中对它的引用。

当我编辑 Telerik ORM 模型(复制到 Designer1.vb 的 Designer.vb 文件)时也会发生这种情况,并增加了一个问题,在这种情况下,designer.vb 文件之后为空。

这是其他人对问题的另一种描述(自 2009 年以来,除了我的以外,他没有答案):http ://social.msdn.microsoft.com/Forums/en-AU/vbide/thread/29e7b9ff-5cdc -456b-9d2f-bc85145e8eaf

你能想到一个可能的来源,但更重要的是,一个可能的修复?

我使用的是 Visual Studio 2008 Standard,几个月前还没有出现这个问题。

谢谢

0 投票
1 回答
1820 浏览

c# - 是否可以在 Properties.Settings.setting 中使用自定义类

我知道可以使用设置来存储程序的一些默认值或用户设置。

但是我需要做一个可以容纳我自己写的课程的设置。这可能吗?在设置的类型或浏览...列中,我看不到我自己制作的课程。

谢谢。

0 投票
1 回答
288 浏览

c# - 设置文件中的任意数据类型

Settings.settings 文件中有一些默认列出的数据类型,然后您可以在选择“浏览”时从树中添加更多数据类型。

我实际上需要int[]在我的设置文件中存储一个,并这样做:

并在程序第一次运行时:

后来被保存到磁盘。和Settings.Save()

这工作得很好,但有一个小问题。如果我想使用设置 GUI 界面添加一个简单的数据类型,那么我的自定义添加将被删除,我必须再次添加它们。我目前只有这种特殊情况,所以如果它被删除,添加它并不是什么大问题。另一方面,我可以像添加int[]: 直接将其编码到 Settings.Designer 文件中一样添加后续基本设置,如字符串/整数/等。

必须有更好的方法来做到这一点?

由于Settings该类已经是部分的,因此创建一个新文件(例如 CustomSettings)是否是一个更好的解决方案,该文件将继续类定义并包含这些晦涩的类型?

0 投票
1 回答
1878 浏览

c# - 在 InnoSetup 脚本中使用 Project/Properties/Settings.settings 的值?

我希望能够在我的 C# .NET 4.0 项目中的一个地方更改一个值。为此,我使用内置Properties/Settings.settings文件,它本质上是一个 XML 文件。

由于我们对我们的软件使用 InnoSetup(这很常见),并且由于settings.settings文件是 C# .NET 应用程序存储值的默认方式,我想知道InnoSetup 脚本是否有办法从设置文件,或者您是否可以将我指向一个可以执行此操作的脚本来设置设置脚本的变量。

编辑:

我运行了 XML 示例,但现在我无法使用 XPath 查询来获取正确的节点。这是我的脚本:

我使用 Inno Setup Precompiler 调用这个函数,如下所示:

XML 文件如下所示:

所有这一切的目标是我可以从我的 C# 项目中的 Settings.settings 文件在我的应用程序中设置值,让我的 hudson 实例检查我的代码并为不同版本的应用程序更改此 XML 文件,例如更改一些值我不需要在设计时知道。我希望能够从这个 XML 文件中提取我的变量。我只是在这里使用 MSXML2。任何帮助将不胜感激。

0 投票
1 回答
3026 浏览

c# - 如何在用户范围设置中设置默认应用程序路径值

在我的 C# 项目中,我有一个文件夹路径的用户范围设置,我想在设计时设置它,以便它成为新用户的默认值(如果我没记错的话)。

我想将默认值设置为用户 AppData 文件夹之一。我在设置中键入什么作为值?当您在解决方案资源管理器中双击它时,我指的是 MSVS Settings.settings UI(不确定它叫什么)。

该值应该是由例如 Application.UserAppDataPath 返回的值

(请结合我的其他问题阅读:C# Difference between Environment.SpecialFolders and Application folder as what path I should use)

谢谢!

更新

有了 shf301 的回答,我进入了 settings.designer.cs 并这样做了:

0 投票
2 回答
2214 浏览

c# - 应用程序设置和 settings.settings 和 configurationmanagers.appsettings 哦,我的

好吧,我正在尝试学习有关如何实现应用程序和用户设置的所有不同选项,这一切都让我感到非常困惑。

<applicationSettings>使用创建部分的 settings.settings 设计器和使用根据文档创建部分的 ConfigurationManager.AppSettings 属性有什么区别<appSettings>

使用 settings.settings 设计器进行应用程序/用户设置的优点/缺点是什么?

如果我假设 System.Configuration 命名空间中的类(特别是 System.Configuration.Configuration 类)主要用于创建自定义部分,我是否正确?

是否可以使用 System.Configuration 命名空间中的任何内容来创建或读取该<applicationSettings>部分而不使用 settings.settings 设计器?那只是一个自定义部分吗?

正如你所看到的,我很困惑......我希望我的问题能从那时起。请告诉我您所知道的,我将继续阅读此文档以试图理解。我的问题不在于我无法完成我需要完成的工作(我可以使用 settings.settings 完成我需要的工作)......问题实际上是理解这个混乱并知道我所有的选择。

先感谢您。

更新:

微软在线文档在这个主题上很糟糕(基本上不存在)。我终于找到了

http://www.codeproject.com/Articles/19675/Cracking-the-Mysteries-of-NET-2-0-Configuration

这很好地解释了这一切。自从我意识到配置文件被合并后,它做得更多了!

0 投票
1 回答
242 浏览

.net - .NET 我的应用程序设置保存在哪里

我很抱歉,这将是冗长的。但我觉得了解我所做的会更好地帮助一些人回答我的问题。

我一直致力于将应用程序和用户设置添加到我一直放在一起的项目中。好吧,实际上我已经完成了任务,编写了一个文件切换验证类来更新用户设置或根据适当的文件切换重置它们,并触发无效、重复或有效切换的事件。

所有这些都很好。

当谈到我的编码时,我一直有这种学习障碍,我需要准确地了解某些东西是如何工作的,然后我才能感到自在地使用它。我喜欢 Visual Studio 为我做的所有事情,但当我可以时,我无法抗拒查看黑匣子。

话虽如此,我开始使用 .settings 文件添加了我需要的设置,将所有测试的东西都按照我的预期连接起来。它当然生成了完美的 cs 文件和 app.config 文件。

我真的不喜欢这样,因为设计器文件不是来自 T4 代码生成工具,所以我无法控制包装类的静态实例是 .Default(我只是不喜欢它在我的代码中读取的方式) ……

因此,我从设计器文件中删除了整个类,将其添加到我自己的 cs 文件中,进行了我想要的修改并删除了 cs 和设计器文件以及 .settings 文件。运行的东西仍然工作稳定。

然后为了确保它正确地拾取东西,我向类添加了一个额外的设置,其中包含所有正确的属性等,果然它出现在我的代码中并且工作得很好。我可以重置、保存等,就像从原始 .settings 文件生成的那些设置一样。

然而...

我注意到 app.config 没有反映新值,在我的测试中似乎也没有反映原始用户设置的变化。

现在有可能我完全错过了一些东西,但是......

我可以抓住可执行文件运行它查看默认设置。然后使用各种用户设置修改器开关运行它,查看相应的设置。在没有开关的情况下再次运行它并查看相同的用户设置,但在可执行文件的目录中没有生成 app.config 或任何其他文件。顺便说一句,也没有任何东西成为嵌入式资源。

所以最后我的问题:

我想知道这些价值观到底在哪里持续存在?

0 投票
1 回答
508 浏览

c# - 自定义 Winforms 设置页面

我有一个用 C# 构建的设置页面,我想以 2 种方式对其进行自定义。

  1. 我希望以非字母的特定顺序对不同的设置进行排序
  2. 我想根据其他设置的值启用/禁用某些设置的编辑。

是否可以通过设置页面执行此操作,或者我是否需要设计自定义控件?

谢谢!