【问题标题】:Product Installation and Configuration on a Windows MachineWindows 机器上的产品安装和配置
【发布时间】:2008-12-29 23:49:12
【问题描述】:

我正在开发一个由 Web 应用程序和 Windows 服务组成的 .NET 3.5 项目。 两者都需要部署在服务器机器上。

我使用 Wix 3 创建了一个 msi 包,它安装应用程序文件、创建快捷方式并注册服务。

我的下一个任务是实现以下内容:

  • 允许通过向导式 GUI 配置 Windows 服务的安装后步骤
  • 允许从文件加载安装设置的预安装步骤
  • 允许将配置备份到文件的预取消安装步骤

我看到两个选项:

  • 通过自定义操作调整 msi 以执行我想要的操作
  • 为 msi (Setup.exe) 创建一个包装器,它将处理所有自定义任务并使用 msiexec 在后台静默运行 msi 包

理想情况下。我想选择选项 2。你有什么想法?

任何建议将不胜感激。

谢谢,

阿尼

【问题讨论】:

  • Web 应用程序的全部意义在于它不需要安装在客户端的机器上。
  • 我应该更具体一点:在最终用户的服务器上。

标签: .net windows installation wix


【解决方案1】:

如果通过添加/删除程序或 msiexec 使用产品 ID 删除,围绕 msi 的包装器将无法处理任务 #3。我会使用自定义操作,或者可以由 msi 生成的辅助实用程序。

这取决于服务需要的配置量。对于我们一些只需要在连接字符串中更新服务器名称的小型配置文件,我们使用 util:XmlFile 元素在安装期间更新文件。

我们还有一个更复杂的配置实用程序,我们在安装结束时有条件地使用

对于从文件加载设置,您可以使用自定义操作来执行此操作,然后使用这些设置更新配置文件安装时使用 XmlFile 或自定义操作。或者将“从文件加载设置”作为向导 gui 的选项并启动该安装后。

【讨论】:

  • 感谢您的反馈。我已经考虑过了。
【解决方案2】:

我最终决定使用安装后配置实用程序创建一个 MSI。

不像我想要的那么优雅,但会确保安装和卸载清理以事务方式正确完成。

【讨论】:

    猜你喜欢
    • 2012-07-30
    • 2015-05-11
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    • 2011-06-06
    • 2023-03-03
    • 2011-09-22
    • 2016-04-17
    相关资源
    最近更新 更多