我正在使用Ant在不同的计算机上部署和安装一些Windows Installer程序包(MSI)。
在尝试安装之前,我想让Ant检查机器中是否已经安装了msi软件包(使用ProductCode)。
有没有办法在Ant中添加一个条件来检查msi产品是否已经安装?
我发现要查询Windows Installer产品,您可以使用API: link和another link
我认为我唯一的选择是构建一个接收ProductCode的.exe并使用API来查看是否安装了msi。然后以某种方式告诉Ant是否安装了产品。
答案 0 :(得分:0)
我对Ant(NAnt和MSBuild;是的)没有多少经验,但从我可以看到你可以写一个“外部任务”并从你的构建脚本中调用它。我假设外部任务是使用Java编写的。我还假设在某种程度上在Java(JNI?)中可以调用Win32或COM API,所以我认为可以创建一个以ProductCode或UpgradeCode作为参数的任务,并返回有关是否有关的信息是否安装了某些东西。