【问题标题】:How to Deploy WPF application using MSI如何使用 MSI 部署 WPF 应用程序
【发布时间】:2016-11-04 04:11:43
【问题描述】:

我有一个 WPF C# 桌面应用程序,需要在 VS2010 中部署为 MSI(Windows Installer 部署,而不是 ClickOnce 部署)。我的应用程序将在运行时生成 SQL CE 数据库,操作 Excel 工作簿,并从/向 COM 端口接收/传输数据 - 所以我不知道部署此类应用程序的适当方法是什么。

我正在查看Windows Installer Deployment Tasks,这对我入门没有帮助。

谁能告诉我一些资源,说明如何将应用程序部署为 MSI 安装程序?

【问题讨论】:

    标签: wpf deployment


    【解决方案1】:

    如果您不想要 ClickOnce,那么您可能需要创建自己的 MSI。在这种情况下,您可以使用:

    1. Visual Studio 中的内置安装程序项目类型。它做得不错,但有局限性。如果您没有很多依赖项或自定义操作,则效果很好。
    2. InstallShield 等商业工具
    3. WIX (Windows Installer XML)

    我尝试了 1 和 3。虽然 WIX 有一点学习曲线,但它是一种非常丰富的方式来做你想做的事。有相当多的可用文档和一些非常好的“开箱即用”向导序列来处理您的标准安装方案(许可证、功能选择、依赖项等)。 WIX 确实有一些效果很好的 VS 集成。

    您可以通过http://wix.sourceforge.net/了解更多关于 WIX 的信息

    注意: VS 安装项目可以执行自定义操作,并安装依赖项,但您必须使用自定义操作。如果您想参数化自定义操作,那么您需要找到关于该主题的不太直观的说明。

    VS setup 项目的另一个限制是 setup 项目只能由 VS (devenv.exe) 编译成 MSI。这意味着 MSI 不能在构建服务器上编译,除非您也在那里安装 Visual Studio。这对我来说是一场表演,所以我改用 WIX 并对结果感到非常满意。

    【讨论】:

    • NathanAW: "cannot run on .... there too" - 你的意思是安装应用程序的计算机也需要安装 VS 吗?那么应用程序的每个用户都需要安装 Visual Studio 吗?这对我来说没有意义..
    • 对不起。只是意味着除非您安装了 VS,否则您无法将 VS Setup 项目编译为 MSI。您可以在任何地方安装 MSI,即使它没有 VS。对此感到抱歉。
    【解决方案2】:

    对于像我这样的人,这些天在搜索如何部署 MSI 之后发现这篇文章的人,您现在需要一个扩展,因为 Visual Studio 团队删除了内置的启动项目功能。您现在需要下载 Visual Studio 安装程序项目扩展。

    请参阅this 用户语音帖子以了解有关删除的讨论,here 是扩展程序的链接。

    对于寻求通过 Visual Studio 生成 MSI 的快速解决方案而不是深入研究 Wix 的人很有用(尽管如果您需要更高级的部署选项,一定要走这条路)。

    【讨论】:

      【解决方案3】:

      将您的 WPF 应用程序配置为作为 ClickOnce 应用程序发布。您可以在项目属性的“发布”选项卡中执行此操作。

      如果您使用“发布向导”(通过单击属性页面上恰当命名的按钮),您可以指定(在第二页上)用户将安装“从 CD-ROM 或 DVD-ROM”。 此选项将在项目输出目录的发布子文件夹中生成一个 setup.exe 文件。当您的用户启动此 setup.exe 程序时,将安装 WPF 应用程序。您可以选择包含更新功能(但您不必这样做)。

      ClickOnce 设置还允许您包含其他文件(例如,您的 SQL CE 数据库文件)和必要的先决条件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多