首页 > 解决方案 > 使用 NSIS 部署 C# Winforms 应用程序时,如何使用 Properties.Settings?

问题描述

我已经使用 Winforms 编写了一个 C# 应用程序,并试图利用内置的 Properties.Settings(用户范围)来记住程序启动之间的用户状态。当通过 Visual Studio 的内置Build > Publish部署应用程序时,显然该文件被放入 Local Appdata 文件夹中。但是,我想使用 NSIS 来创建程序的可执行文件。我可以通过 NSIS 脚本将ProgramName.exe.config文件放入本地 AppData,但我的应用程序似乎没有从中读取。不会保留任何用户设置。

这甚至可能吗?还是应该使用自己的方法(数据库或编写自己的设置 xml)来存储用户设置?

标签: c#.netwinformssettingsnsis

解决方案


好的,我让它与 NSIS 一起工作。App.config 文件有一个名为“复制到输出目录”的属性,默认设置为“不复制”。我在这里找到了这些信息:https ://docs.microsoft.com/en-us/dotnet/framework/configure-apps/

在@Jimi 的帮助下,我通过添加 System.Configuration 作为参考,找到了将在哪里创建 user.config 文件,然后使用以下命令获取路径:

var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);

user.config 文件不是在应用程序安装时创建的,而是在第一次调用以下内容时创建:

Properties.Settings.Default.Save();

开发人员在 NSIS 中没有什么特别需要做的事情。


推荐阅读