如何检查是否使用Ant安装了Windows安装程序产品



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

我想让Ant检查msi包是否已经安装在机器上(使用ProductCode),然后再尝试安装它。

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

我发现,查询Windows安装程序产品,你可以使用API:链接和另一个链接

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

我对Ant (NAnt和MSBuild;是的),但从我可以看到你可以写一个"外部任务",并从你的构建脚本调用它。我假设外部任务是用Java编写的。我也假设在Java (JNI?)中有可能调用Win32或COM API,所以我认为有可能创建一个以ProductCode或UpgradeCode为参数的任务,并返回有关是否安装了某些东西的信息。

最新更新