【问题标题】:c# Visual Studio Project Installer retrieve data from Textboxc# Visual Studio Project Installer 从文本框检索数据
【发布时间】:2018-03-02 08:41:29
【问题描述】:

我正在尝试从 Visual Studio 项目安装程序中的文本框检索数据,但我一直失败。我不知道如何从 EDITA2 字段中检索数据,到目前为止,互联网似乎没有答案。

我正在谈论的项目是您使用上述安装程序安装的 Windows 服务。在安装程序中,您可以配置服务。我想获取服务器 IP 和计算机名称等数据,并且我想稍后在运行的服务中使用这些数据。说到服务,有没有可能安装后自动启动服务?

总结一下,我想将安装程序中的数据写入一个文本文件,并在安装过程完成后启动一个批处理文件。你能帮帮我吗?

提前感谢您的回答。

【问题讨论】:

标签: c# visual-studio-2013 installation visual-studio-setup-proje


【解决方案1】:

这是文本框用户界面对话框的文档:

https://msdn.microsoft.com/en-us/library/e04k6f53(v=vs.100).aspx

标识符 EDITA1(和其他)是一个属性名称,您可以稍后在(例如)自定义操作中使用它。如果不确切知道您可能会想到什么样的自定义操作,很难说出您是如何使用它的。通常,将其指定为自定义操作的参数为 [EDITA1] 将导致它被解析为其实际值。但是,如果您只想将值存储在注册表中,您将创建一个值为 [EDITA1] 的注册表项。

要在使用安装程序类安装服务的 Visual Studio 设置中启动服务,您需要覆盖 Install 方法,调用 base.Install(),然后添加代码以启动服务。同样,在卸载或升级时,您可以覆盖 Uninstall 方法并在调用 base.Uninstall() 之前停止服务。

这些帖子有一些文本框示例:

Overriding "Textboxes" dialog fields from the command line in MSI installer (Visual Studio 2010 Web Setup)

Setup Project: user enters a value then store it in a text file or database

Visual Studio 设置对于服务和 UI 不是很有用。无法验证用户在输入时输入的内容 - 如果您使用自定义操作验证它,它将在安装结束时,整个安装将失败并回滚。 Windows Installer 内置支持启动/停止/删除/安装服务,但 VS 设置不使用它。如果这是您经常做的事情,考虑另一种工具可能会很有用,这可能有一个学习曲线,但生成的 MSI 将更可靠且更易于使用。

【讨论】:

  • 您好,感谢您的回复,并为我迟到的回复感到抱歉!我想将用户放入编辑框中的数据写入配置(.txt)文件。我该怎么做?
  • 您能否提供一个小代码示例,以便向我展示如何在我的 c# 代码中管理它?除了你的这个,我找不到任何关于它的东西,但这对我没有帮助:它们没有保存在任何地方。如果你想保存它们,你需要自己做。在安装项目的 IDE 中创建一个注册表项很简单,在值部分中,您将属性名称放在方括号中,例如 [EDITA1]
【解决方案2】:

【讨论】:

  • 您走在正确的道路上,OP 将需要创建自定义操作。几个月前,我已经使用 Wix Installers wixtoolset.org 完成了此操作,而且实现起来相对简单。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-07
相关资源
最近更新 更多