【问题标题】:How to deploy WPF application with WIX如何使用 WIX 部署 WPF 应用程序
【发布时间】:2012-03-13 20:59:47
【问题描述】:

我已经开始使用 WIX 来部署 WPF 应用程序。我已经创建了具有所需界面功能等的 .wxs 文件...

我的问题是如何分发支持我的 WPF 可执行文件所需的 .Net 文件?不是 .net 框架或 sql server express,而是运行我的可执行文件所需的依赖项。

该过程是否应该包括使用 VS Installer 构建一个 msi,然后将该 msi 包含到我的 WIX 脚本中并在我的 WIX msi 中运行它?

或者,使用 WIX 分发 WPF 可执行文件的正确过程是什么?

【问题讨论】:

  • 奇怪的问题...您分发所有文件的方式与分发 .exe 文件的方式相同。因此,如果 wix 安装程序安装了 exe,您需要做的就是破解 .wxs 并对丢失的文件执行它对可执行文件的处理。

标签: wpf wix


【解决方案1】:

我认为您的问题根本与 WiX 或 WPF 无关。您需要确保将必要的依赖项与安装程序一起打包,无论它们是什么。在安装程序脚本中引用您的依赖文件就足够了。

【讨论】:

  • 如果我可能会问,依赖文件是指外部 dll 文件,还是我的项目所依赖的解决方案中的其他项目?如果我在我的项目中使用一些本机 dll 并且它们存在于我的调试文件夹中,安装程序会自动包含它们还是我必须对此做些什么?
  • @FaisalMalikyar:我的意思是 WPF 应用程序依赖于执行的任何程序集(DLL 文件)。应该在安装程序脚本中引用它们,以便将它们包含在安装程序中,以便将它们作为应用程序的一部分进行安装。
【解决方案2】:

这是我对任何应用程序都遵循的流程。

1) 从一个干净的 VM 开始,它代表我想要定位的机器的最小公分母。假设 WinXP SP2 32 位。

2) 手动部署我的应用程序并将所有步骤记录在一个 word 文档中。然后在其他操作系统上尝试这些步骤,以确保您没有遗漏任何内容。

3) 执行我文档中的每个步骤并在 WxS 中实现它们。请记住,Windows Installer 和 Windows Installer XML 是一种声明式编程语言,而不是一种命令式编程语言。您不会告诉它将文件从 dir a 复制到 dir b,而是描述目录结构并由安装程序处理。

顺便说一句,在你提到的事情中,你在我认为简单的事情上寻求帮助,而将更难更复杂的事情排除在外。

【讨论】:

    【解决方案3】:

    作为另一种方法,您可能还会看到这篇帖子 Embedding dlls in a compiled executable 使用 Costura.Fody 嵌入所有需要的 dll(例如 interop 的)。使用 WIX,不再需要在 .wsx 文件中添加任何依赖的 dll 作为组件。

    【讨论】:

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