C# 使用 WinForms 应用程序测试 WinService。应用程序配置不会更改值

标签 c# .net winforms windows-services app-config

我一直在开发 WinService 应用程序并使用 WinForms 应用程序测试方法和功能。

我有一个解决方案,两个应用程序都在同一个解决方案下。应用程序逻辑和方法在公共(public)类和方法下的 WinService 项目中,以便我可以单独测试方法。

WinService 应用程序使用引用链接到 Windows 窗体应用程序。这使我有机会在 WinService 应用程序公共(public)类中初始化方法。

Solution
|
|
|--- WinForms
|     |
|     |--- bin
|           |
|           |--- WinForms.exe
|           |--- WinForms.exe.cofig
|           |--- WinService.exe
|            
|--- WinService

问题是,当使用 Forms 应用程序时,app.config 的更改没有任何区别,返回的值始终相同。

我像这样访问 app.config 设置

Properties.Settings.Default.App_config_settings_item_name

似乎在构建解决方案时将 WinService.exe 复制到 WinForms 应用程序的 bin 文件夹中,但缺少 app.cofig 文件。

我已经测试过从 WinService bin 文件夹复制这个 app.config,但它没有任何区别。看起来 app.config 值在 WinService.exe 中是“硬编码”的,甚至 app.cofig 文件也没有更改这些值。

使用 app.config 属性的正确方法是什么?

最佳答案

因此,为了尝试不同的东西,我决定使用 <appSettings>我在这里找到的解决方案

appSettings vs applicationSettings. appSettings outdated?

在这种情况下,即使它是老式的,它对我也很有效。它允许我启动 Windows 服务方法并仍然使用来自 Windows 窗体应用程序 app.cofig 的设置。其他可能性是用于配置读取的外部库,如 Zenini。

关于C# 使用 WinForms 应用程序测试 WinService。应用程序配置不会更改值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37028846/

相关文章:

c# - 如何通过列名设置 DataGridViewRow 的单元格值?

.NET RegEx "Memory Leak"调查

c# - 如何减轻在 C# 中初始化列表字典的痛苦?

c# - 关闭表单后进程没有关闭

c# - 如何链接2个组合框

c# - 什么是 NTLM/Authenticate/Negotiate Web 身份验证

.net - "Peeking Ahead"循环字典项时

c# - 确定哪个列表框的事件已经启动

c# - 组框标题颜色

c# - 如何修复从删除条件注释中删除 HTML 注释的正则表达式?