【发布时间】:2017-10-09 04:40:58
【问题描述】:
我创建了一个通过 MSI 安装的 Windows 服务。该服务需要一个主机/IP、端口和路径来进行通信,我已在 VS2017 Settings.settings 中将其作为单独的属性添加。我现在想让安装程序接受用户输入并将设置写入我的配置文件。首先,我尝试了以下方法:
public override void Install(IDictionary stateSaver)
{
string server;
string port;
string path;
base.Install(stateSaver);
server = this.Context.Parameters["SERVER"];
port = this.Context.Parameters["PORT"];
path = this.Context.Parameters["PATH"];
Properties.Settings.Default.server = server;
Properties.Settings.Default.port = port;
Properties.Settings.Default.path = path;
Properties.Settings.Default.Save();
}
还有我的 app.config 文件的摘录...
<userSettings>
<myService.Properties.Settings>
<setting name="server" serializeAs="String">
<value />
</setting>
<setting name="port" serializeAs="String">
<value />
</setting>
<setting name="path" serializeAs="String">
<value />
</setting>
</myService.Properties.Settings>
</userSettings>
这不会保存设置,所以我求助于谷歌。我找到的最接近的东西是this question,但是我不完全理解它的建议(我对 C# 很陌生)。我使用的是完整的 ServiceModel 部分组吗?我确信我可以弄清楚如何直接编辑 XML,但这将是一个错误而不是正确的方法,我宁愿做对。
【问题讨论】:
标签: c# configuration windows-installer user-input