我一直在开发 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/