0

我正在使用 Ant 在不同的机器上部署和安装一些 Windows Installer 包 (MSI)。

在尝试安装之前,我想让 Ant 检查机器中是否已经安装了 msi 包(使用 ProductCode)。

有没有办法在 Ant 中添加条件来检查 msi 产品是否已经安装?

我发现要查询 Windows Installer 产品,您可以使用 API: 链接另一个链接

我认为我唯一的选择是构建一个接收 ProductCode 并使用 API 来查看是否安装了 msi 的 .exe。然后它以某种方式告诉 Ant 产品是否已安装。

4

1 回答 1

0

我对 Ant(NAnt 和 MSBuild;是的)并没有太多经验,但据我所知,您可以编写一个“外部任务”并从您的构建脚本中调用它。我假设外部任务是使用 Java 编写的。我还假设在 Java(JNI?)中以某种方式可以调用 Win32 或 COM API,所以我认为可以创建一个将 ProductCode 或 UpgradeCode 作为参数并返回有关是否是否安装了某些东西。

于 2013-01-02T18:39:25.583 回答