【问题标题】:Console application is not taking config values from its config file after deployment控制台应用程序在部署后未从其配置文件中获取配置值
【发布时间】:2020-11-11 23:22:57
【问题描述】:

在我的控制台应用程序中,它创建了应用程序设置并且还有 app.config 文件。

构建后我得到 appname.exe 和 appname.exe.config(它有测试配置值)。

当我在生产中部署这些文件并根据生产更改 appname.exe.config 中的一些条目并通过调度程序运行应用程序时。

它仍然以某种方式获取测试配置值,是不是我弄乱了配置值。对我来说,appname.exe 似乎以某种方式从应用程序设置中获取了条目,而不是加载 appname.exe.config

【问题讨论】:

标签: c# console-application app-config application-settings


【解决方案1】:

如果我没记错的话,如果您使用 Visual Studio 中的 Settings UI 来设置您的配置...

  • Settings 存储在应用程序的配置文件中 appname.exe.config
  • 这些设置还具有嵌入在应用程序中的相应默认值
    • 默认值是您在设置 UI
    • 中键入的值
  • 如果无法从appname.exe.config 读取配置值,则返回默认值。

【讨论】:

  • Pressacco,感谢您的回复。我明白你在说什么,但我不明白为什么应用程序没有加载 appname.exe.config 本身......我正在通过任务调度程序运行应用程序
  • @NileshChandane :可能是权限问题?尝试在没有 Task Scheduler 的情况下运行应用程序。另外,计划任务没有“工作目录”吗?设置好了吗?
【解决方案2】:

这是因为您的设置范围设置为Application 而不是user

只需在 Visual Studio 中打开您的 *.settings 文件并将您的属性范围更改为 user

【讨论】:

  • 谢谢!它的工作......只是为了确定,所以我们在应用程序范围内的任何条目都无法在运行时更改,例如在部署应用程序之后如果我想更改让我们说 url,所以我将无法更改来自 appname.exe.config 如果它在应用程序范围下定义??
  • 您能否确认上述声明,以便我可以将其标记为答案?
  • 不完全是。这个想法是,当您将设置范围设置为Application 时,您的应用程序假定设置文件将存储在路径%appdata%\[CompanyName]\[AppName]\[version]\user.config 下。但如果您将范围设置为user,则假定它存储在可执行文件的同一文件夹中。
猜你喜欢
  • 1970-01-01
  • 2011-07-14
  • 1970-01-01
  • 1970-01-01
  • 2021-12-11
  • 2014-08-08
  • 1970-01-01
  • 2010-09-15
  • 1970-01-01
相关资源
最近更新 更多