问题标签 [configurationmanager]

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 投票
8 回答
154852 浏览

c# - 如何找到活动 app.config 文件的路径?

我正在尝试完成这个异常处理程序:

这个问题似乎只发生在我使用 nUnit 时。

0 投票
2 回答
2198 浏览

c# - 我必须从 ConfigurationSection 派生以支持每个用户的设置吗?

我正在玩弄 .NET 的配置支持(ConfigurationManager 类和相关的支持类)。我想编写一个应用程序,一旦安装:

  • 在 foo.exe.config(在程序文件中)中有默认设置。
  • 用户稍后可以使用应该保留的非默认值覆盖设置。
  • 用户的偏好应该保留在用户的配置文件中,因为他不应该对 Program Files 目录具有写权限。

应用程序在设置时应使用用户的首选项,否则使用默认值。

看起来这应该很容易——这是一种非常常见的模式。但是我在这方面的尝试遇到了障碍,我想知道我是否采取了正确的方法。

以下代码产生运行时异常“ConfigurationSection 属性在锁定时无法编辑”。

问题是 .NET 定义的<appSettings>部分是用默认声明的allowExeDefinition=MachineToApplication(请参阅 Microsoft 的 Irena Kennedy 的这篇好文章)。这禁止将该部分写入用户的配置文件(本地或漫游)。

所以,我假设我需要定义我自己的部分,使用allowExeDefinition=MachineToLocalUser. 但据我从 MSDN 文档中得知,这意味着我需要创建自己的配置类,从ConfigurationSection. 那里的例子让我的工作比我预期的要多,这通常会引发我做错事的警钟。

做到这一点真的有那么难吗?.NET 是否提供了一种简单的方法来支持这一点,还是我应该完全采用不同的方法?

0 投票
9 回答
79295 浏览

.net - System.Configuration.ConfigurationManager 不可用?

在 VS2005 C# 项目中,我添加了对 System.configuration 的引用。在对象浏览器中,我可以看到 System.Configuration.ConfigurationManager。在 Intellisense System.Configuration 中只有旧的 ConfigurationSettings,没有 ConfigurationManager。

我的代码 System.Configuration.ConfigurationManager.AppSettings["MySetting"]

突出显示为语法错误且无法编译。

在另一个项目中,完全相同的设置工作得很好......关于发生了什么的任何线索?

0 投票
1 回答
887 浏览

asp.net - 如何让我的 .ASHX 访问 ConfigurationManager.ConnectionStrings?

我已经包含了其他页面使用它的相同文件,但由于某种原因它只是没有找到它。我如何包括对它的访问?

0 投票
1 回答
6231 浏览

c# - 打开其他程序的配置文件

我有一个程序A,它还有一个 app.config 文件,我在其中添加了一些密钥,例如服务器地址、用户名和密码以连接到服务器。它是一个控制台应用程序。现在我想制作一个我已经完成的用户界面。在那个 UI 中,我想修改程序A的 app.config 的内容。我怎么做?

这是我尝试过的,我将 UI(基本上是一个 .exe)复制到程序A 的目录中,app.config 也位于该目录中。然后在 UI 中,我使用ConfigurationManager类的OpenExeConfiguration方法,并将程序A 的文件名作为参数传递。但它会抛出System.Configuration.ConfigurationErrorsException类型的异常。

所以我认为我的方法是不正确的。我该怎么做?

编辑:哦,我忘了告诉我正在使用 C#、.NET 3.5 和 VS 2008(如果有帮助的话:D)

0 投票
1 回答
4811 浏览

c# - 如何使用 ConfigurationManager 通过 ClickOnce 更新持久化 app.config?

这个问题准确地描述了我的问题,除了我在app.configwith中使用自定义配置部分ConfigurationManager,所以那里提出的解决方案不适用......

基本上,我的问题是当 ClickOnce 更新应用程序时,它会使用新的 app.config 安装到不同的目录中,从而删除所做的任何更改。我的应用程序使用 app.config 来持久化应用程序设置,所以这非常糟糕......合并更新会非常好(类似于在另一个问题中实现的),但在这一点上几乎任何自动化都会很好。

或者我应该只为我的 app.config 文件使用设置位置而不是尝试使用默认位置?

0 投票
5 回答
3613 浏览

vb.net - 如何使用强类型对象写入我自己的 app.config?

以下代码有两个缺陷,我不知道它们是错误还是设计使然。从我所看到的应该可以使用 Configuration.Save 写回 app.config 文件,并且根据http://www.codeproject.com/KB/cs/SystemConfiguration.aspx代码应该可以工作。

这些错误显示在下面的源代码中,并在您尝试设置属性或保存配置时出现。

我想这样做,以便在第一次运行应用程序时检查属性,然后告诉用户是否需要设置以管理员身份运行,UI 将帮助他们进行设置。我已经“以管理员身份运行”无效。

0 投票
4 回答
60751 浏览

c# - ConfigurationManager.OpenExeConfiguration - 加载错误的文件?

我在一个项目中添加了多个 app.config(每个都有不同的名称)文件,并将它们设置为复制到每个构建的输出目录。

我尝试使用以下方法访问每个文件的内容:

代码运行,但 o.HasFile 以 False 结尾,而 o.FilePath 以“app1.config.config”结尾。如果我更改为代码:

然后代码炸弹“加载配置文件时出错:参数'exePath'无效。参数名称:exePath”。

如果我复制/粘贴配置文件(所以我最终得到 app1.config 和 app1.config.config),那么代码运行良好,但是,我认为这不是一个好的解决方案。因此,我的问题是:如何使用 ConfigurationManager.OpenExeConfiguration 正确加载配置文件?

0 投票
1 回答
2173 浏览

.net - 强制 ConfigurationManager 重新加载所有部分

我正在编写一个配置系统,其中 app.config 文件是从分布在多个位置的各种配置片段动态构建的。该系统目前工作如下:

  1. Bootstrapper 构建配置文件。
  2. Bootstrapper 使用新的配置文件作为配置文件初始化新的 AppDomain。
  3. 结果,新的 AppDomain 被配置为使用新的配置文件并且一切正常。

我们希望摆脱这种多 AppDomain 方法;它增加了一层复杂性,尤其是在涉及非托管库和其他遗留代码时。

在移动到一个 AppDomain 时,工作流程将更改为:

  1. Bootstrapper 构建配置文件。
  2. Bootstrapper 将配置文件合并到自己的配置文件中。
  3. Bootstrapper 刷新其 ConfigurationManager 缓存。
  4. Bootstrapper 在同一个 AppDomain 中启动主应用程序。

似乎 ConfigurationManager 将部分缓存在内存中。例如,如果我在第 3 步之前阅读 AppSettings,我必须调用:ConfigurationManager.RefreshSection("appSettings");事实上,我必须确保引导程序使用的任何部分都已刷新。

我能够遍历新配置文件中的所有配置部分并强制刷新它们,但是,这会强制配置管理器加载配置文件中引用的任何程序集。如果可能的话,我想推迟这个。如果有办法使 ConfigurationManager 当前在内存中的内容无效?

0 投票
2 回答
4731 浏览

c# - 有人可以提供一个快速的 App.config/Web.config 教程吗?

我以前多次使用过这两个配置文件,但我从未花时间完全了解它们的实际工作原理。和大多数人一样,我了解如何调用WebConfigurationManager.AppSettings["key"]以获取配置值的基础知识。

以下是我提出的一些问题:

  1. 当您在类库中引用配置值时会发生什么,并且该库是更大解决方案的一部分?是否需要将 app.config 复制到输出目录才能找到变量?(我假设是的)
  2. 您可以直接使用另一个类库中 app.config 中的配置值吗?
  3. 假设问题 3 是“是”,如果来自不同库的多个 app.config 文件包含具有相同键的配置值,会发生什么情况?
  4. 当您引用 web.config 但在类库中时会发生什么?
  5. 当您引用 app.config 但在网站或 Web 应用程序项目中时会发生什么?