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

C# testing WinService using WinForms application. Application config doesn't change values

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

我有一个解决方案,两个应用程序都在同一个解决方案下。应用逻辑和方法在publicclass下的WinService项目和方法里面,这样我可以单独测试方法。

WinService 应用程序使用引用链接到 Windows Forms 应用程序。这让我有机会在 WinService 应用程序中初始化方法 public class.

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 中是 "hard coded",甚至 app.cofig 文件也没有改变这些值。

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

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

appSettings vs applicationSettings. appSettings outdated?

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