【问题标题】:Creating WiX projects from MSI using dark使用暗从 MSI 创建 WiX 项目
【发布时间】:2016-05-27 16:36:24
【问题描述】:

我们有一个解决方案,其中大约有 10000 个项目。我们有大约 20 个使用 vdproj 创建的安装程序。

我需要创建 WiX 项目,这将创建 .msi 而不是 vdproj。我使用 dark.exe 从 msi 生成 wxs 文件并从中获取二进制文件。 我成功创建了一个 msi 文件,一切都很好。

但后来我开始考虑它。如果其中一些项目发生更改,这些更改会在重建 wix 项目后应用到应用程序吗?或者 wxs 将引用旧版本并对其进行更新,有人必须重建 vdproj 项目以创建新的 msi,然后再次使用 dark.exe?

对于一个愚蠢的问题,我很抱歉,这是我第一次使用 wix 并与一般安装程序一起工作。

提前谢谢你

【问题讨论】:

    标签: wix windows-installer


    【解决方案1】:

    您已经走上了正确的道路。 VDPROJ 输出是 .msi 文件,因此使用 dark 将它们转换为 wxs 文件是正确的做法。现在您有了 wxs 文件(构建 wix 部署的基本源文件),您可以取消解决方案中的 VDPROJ 项目,只更新和使用 wxs 文件(我相信 WiX 也有一个可用的 Visual Studio 项目模板)。

    随着项目的变化,您必须使用新的程序集或可交付文件更新 wxs 文件。

    这种方式比进行通配符拾取更好(无论如何,从技术上讲,你不能用 WiX 做这件事),因为最好明确控制目标机器上发生的事情。我见过很多情况,开发人员不小心将引用添加为不需要的构建输出,有时该引用无法根据许可协议或其他合法性重新分发。

    【讨论】:

    • 谢谢。我想,我不明白到底发生了什么。必须做更多的研究。
    • 我理解正确吗:假设我们有 foo.dll 作为 wxs 文件中的一个组件。如果我们更改项目 foo,我们必须将新的 foo.dll 放到 wix 项目中的源文件夹中?
    • 不,文件 foo.dll 的组件(容器)不需要更改。如果负载发生变化(添加/删除/删除),您只需要更改 wxs 文件。在 WiX 站点或 MSDN 上阅读组件规则是个好主意,但一般规则是一个二进制 = 一个组件。
    • 是的,我已经读过了。非常感谢你,达蒙,你的回答。真的很感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-14
    • 2015-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-09
    相关资源
    最近更新 更多