gpt4 book ai didi

wix - Bootstrap :在运行前检查是否安装了 msi 版本

转载 作者:行者123 更新时间:2023-12-03 17:21:15 24 4
gpt4 key购买 nike

我正在尝试为以下问题找到解决方案:

我有许多程序(我们称它们为奴隶),它们都依赖于一个程序(主程序)。我需要为每个从站分发一个安装程序。这个安装程序需要安装master。

我希望能够对这两个部分进行版本控制,因此多个 msi 似乎是正确的解决方案,并与 Bootstrap 链接在一起。

我的问题是,如果从属安装程序安装了与已安装的主服务器相同的版本,.msi 将在修复/删除模式下运行。

从用户的角度来看,这是 Not Acceptable ,只会引起困惑。

在尝试运行 msi 之前,有什么方法可以检查当前安装的文件的版本吗?

我目前正在使用 WIX 的 setupbld.exe 作为 Bootstrap 。

非常感谢任何其他解决方案(我也尝试过合并模块但没有成功,因为版本控制没用)

最佳答案

而不是使用 setupbld.exe (我真的不知道,因为我找不到任何文档)你可以使用 msbuild 的 generatebootstrapper task . wix 文档已经介绍了如何使用此任务来生成安装 .NET 框架的 Bootstrap 。见 How To: Install the .NET Framework Using a Bootstrapper .这利用了预定义的 Bootstrap 包。

但是,在这种情况下,您还必须 编写您自己的 Bootstrap 包 .一种方法是研究 C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\ 中现有的 Bootstrap 包。 (或 Windows SDK 中的那些)并阅读 documentation of the Bootstrapper Manifest XML format . bootstrapper generator工具也可能有帮助。

要确定是否需要安装包,可以使用 InstallChecks 之一设置属性,然后检查 InstallCondition 中的属性值下Commands元素。

如果你认为这一切都比它应该的更难——我同意,但这是我迄今为止使用的。有一些我还没有尝试过的替代方案:

  • 名不副实的dotNetInstaller
    这实际上是一个通用目的
    Bootstrap 生成器。
  • wix 3.5 burn尚未发布的 Bootstrap 。我不确定它是否处于可用状态。
  • 关于wix - Bootstrap :在运行前检查是否安装了 msi 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1884763/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com