我试图从Visual Studio Project Installer中的文本框中检索数据,但我只是一直在失败。我不知道如何从中检索数据,让我们说EDITA2字段,到目前为止互联网似乎没有答案。
我正在谈论的项目是您使用上述安装程序安装的Windows服务。在安装程序中,您可以配置该服务。我想获取服务器IP和计算机名称等数据,我想在以后的运行服务中使用这些数据。谈到服务,安装后是否有可能自动启动服务?
总结一下,我想将安装程序中的数据写入文本文件,并在安装过程完成后启动批处理文件。你能帮帮我吗?
提前感谢您的回答。
答案 0 :(得分:1)
我认为您正在搜索自定义操作
https://msdn.microsoft.com/library/d9k65z2d(v=vs.100).aspx
https://msdn.microsoft.com/en-us/library/9cdb5eda(v=vs.100).aspx
要设置服务的StartType,您需要ServiceInstaller
也许这有帮助 http://www.docstorus.com/viewer.aspx?code=7c7ccc28-6503-4779-877e-f350faab6741
答案 1 :(得分:0)
这是Textboxes用户界面对话框的文档:
https://msdn.microsoft.com/en-us/library/e04k6f53(v=vs.100).aspx
标识符EDITA1(和其他)是一个属性名称,稍后您可以在(例如)自定义操作中使用。如果不知道你可能会想到什么样的自定义动作,很难说你如何使用它。通常,将其指定为自定义操作的参数[EDITA1]将使其被解析为其实际值。但是,如果您只想将值存储在注册表中,则需要使用值[EDITA1]创建一个注册表项。
要在使用安装程序类安装服务的Visual Studio安装程序中启动服务,您需要覆盖Install方法,调用base.Install(),然后添加代码以启动服务。同样,在卸载或升级时,您可以覆盖Uninstall方法并在调用base.Uninstall()之前停止服务。
这些帖子有一些文本框示例:
Setup Project: user enters a value then store it in a text file or database
Visual Studio设置对服务和UI不是很有用。无法验证用户在输入时输入的内容 - 如果使用自定义操作对其进行验证,则将在安装结束时进行验证,整个安装将失败并回滚。 Windows Installer内置支持启动/停止/删除/安装服务,但VS安装程序不使用它。如果这是您经常做的事情,考虑另一个工具可能会有用,这可能有一个学习曲线,但最终的MSI将更可靠,更容易使用。