【问题标题】:How to create windows installer [closed]如何创建 Windows 安装程序 [关闭]
【发布时间】:2018-09-12 10:12:45
【问题描述】:

基本上,我们以手动安装程序(Windows powershell 脚本)的形式发布我们的更改/修复。它将通过读取配置文件值在特定位置安装指定的 .dll 和 SQL 脚本文件(我们将在此文件中配置 .dll 和 Sql 脚本位置)。相同的 powershell 脚本具有用于回滚特定 chage 集的卸载代码。

是否有任何选项或机制可以为上述要求创建 Windows 安装程序?

【问题讨论】:

    标签: powershell wix windows-installer appx msix


    【解决方案1】:

    短版:已经有很多答案了 - 我主要只是添加一些链接到 现有的答案。 Here is a previous short answer of mine on the topic.

    更高的“一目了然性”:以上答案的特点是更简单的格式和列表视图当前重要的部署工具。匆匆?测试这些,选择一个。下面是更多细节和一些进一步的“讨论”。


    部署工具

    有许多工具可用于创建创建各种安装程序/setup.exe 文件。以下是其中大部分的简要说明的链接:

    我建议去 MSI。使用什么具体工具不太明显。有关不同工具优缺点的描述,请参阅下面的最后一节。


    自动更新?:Various ways to create auto-updating packages。


    为什么选择微星? MSI 的主要优势:

    MSI (Windows Installer) 是企业部署标准,因为与以前的安装相比,它提供了a number of corporate benefits of major significance 技术。好处集中在可靠的遥控器上 管理和标准化 - 至关重要的企业部署 担心。

    简而言之,最重要的具体好处可能是:

    1. 可靠的静默运行(标准化且完全可抑制的 GUI)
    2. 隐式可用卸载(处理旧设置时的噩梦)
    3. 透明度(安装程序的半透明和可检查性质 - 已编译的 CA 除外)
    4. 提升的安装权限(没有混乱的临时管理员权限)
    5. 标准化命令行(无需寻找“秘密”开关)
    6. Administrative installation(文件提取 - 企业重新打包必不可少)
    7. 详细日志记录(确实有用且详细:-))
    8. 标准化包定制(转换 - 数据库片段)
    9. 回滚支持(可以撤消安装失败的更改)
    10. 库存(管理和报告:对安装的内容和位置进行全面登记)
    11. Active Directory/GP 集成

    总而言之,这产生了 MSI 的整体优势:可靠、远程 为繁忙的系统管理员管理部署, 企业环境。关键的好处,尽管技术 复杂性和古怪性。

    许多人发现处理技术具有挑战性 - there are some common pitfalls(我写了 a very odd, ad-hoc description of some MSI anti-patterns towards the bottom here - 与问题无关,但确实如此 - 有时事情会一时兴起,让任何人感到惊讶写得太好了 - 不是很好,只是务实的细节。第一个链接也是如此)。

    The linked serverfault answer(上图和此处)对这些企业 MSI 的好处以及需要注意的一些挑战进行了更详细的描述。

    同样的服务器故障问题有a second answer describing common design errors in MSI files。一个非常混乱的“大脑转储”。


    MSIX / AppX

    我要指出的是,微软现在打包的新平台是MSIX,基于AppX应用程序框架。然而,MSI 在企业部署领域的渗透率很高,因此 MSI 的相关性还有多长时间还有待观察。所有已建立的部署工具都在努力支持 MSIX 和 AppX 以及其他部署技术(包括虚拟化)。

    在一些链接中滑倒:


    AppV

    在现实中,企业界 AppV(应用程序虚拟化/应用程序流)已变成 a common deployment solution(Tim Mangan 的博客)。


    选择 MSI 工具

    创建 MSI 的行业领导者通常是 Advanced Installer、Installshield、PACE Suite,以及开源解决方案 WiX(及其商业分支 Firegiant)——您似乎有些熟悉。

    我只会为您提供一些指向以前编写的答案的链接,其中包含一些关于这些不同工具的轻率组合的意见和事实 - 它旨在作为“最大努力”帮助人们决定什么他们需要的工具,而不声称是“正确的”。这始终是一项危险的尝试——多年的经验意味着获得的知识,但也预示着后天的坏习惯和怪癖。只能提供帮助的有缺陷的专业人士的诚实意见会产生什么结果:

    【讨论】:

    • MSIX/Appx 似乎是非常有限的技术,没有完全支持(例如命名管道)。虽然您认为它只是一个简单的安装程序,但实际上应用程序运行后的方式完全不同。应用程序之间存在一些“不充分”的隔离,这些应用程序并不意味着可以直接访问,即使是用户(也是管理员)也是如此。这些应用程序通常安装(取决于注册表配置)在 C:\Program Files\WindowsApps 中,隐藏得非常好。
    【解决方案2】:

    如果你想要一个工具来帮助你,但仍然想要一个像 Wix-Toolset 这样的脚本,你可以试试 WixPie。基础版可以创建msi或者exe,基础版是免费的。

    【讨论】:

      【解决方案3】:

      我更喜欢 Inno Setup,因为它免费、强大并且具有我们需要的功能。

      http://www.jrsoftware.org/isinfo.php

      【讨论】:

        【解决方案4】:

        还有一些付费工具,例如 Advanced Installer(Caphyon 提供)和 InstallShield(Flexera 提供),您可以使用它们来构建 MSI 包。它们的主要优点是创建安装程序项目非常容易(可通过 UI 设计师进行配置),但它们的大部分功能都是付费的。

        【讨论】:

          【解决方案5】:

          结帐https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.MicrosoftVisualStudio2017InstallerProjects

          它基于 WIX,但上手更容易、更快捷,尤其是对于小型项目。

          【讨论】:

            【解决方案6】:

            https://www.codeproject.com/Tips/105638/A-quick-introduction-Create-an-MSI-installer-with

            试试这个,这利用了我们公司也在使用的 wix 项目。请记住,您将需要 wix 插件来编译项目。它是免费且易于使用的。如果您在配置中遇到问题,我可以帮助您。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2011-02-07
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-06-27
              • 1970-01-01
              • 2010-11-27
              • 1970-01-01
              相关资源
              最近更新 更多