为了给你一个背景 - 我有一个4 MSI来自我们的供应商,这必须去我们公司的服务器(我们正在看3500左右的服务器).截至目前,我的同行正在使用vbs,ps1脚本来管理它.但是脚本的问题是每次更新时我们都要担心在运行新的软件包和大量硬编码之前卸载现有的软件包.
我想通过设置一个WIX脚本将所有4个MSI打包在一起来自动化整个过程(硬编码非常少).我读了WIX包并用它来创建一个MSI.但是现在有很多变量要传递给4个MSI,所以我想使用自定义动作来根据运行MSI的环境/机器来设置这些变量.但是我不能让自定义动作起作用?我错过了什么吗?
一点点谷歌搜索,我看到像Bundle中没有CustomActions的东西?有人可以证实吗?
如果没有CA,我的选择是什么?如何操作变量传递给4 MSI?其中大多数需要根据运行的机器设置(如安装路径,用户ID,应用程序池ID等).
我有一个WIX_bundle(V1.0.0.0),它安装了4个第三方MSI版本(5.0.0.0).现在我的第三方MSI的新版本已更新(6.0.0.0).我用(v2.0.0.0)创建了一个新版本的WIX_Bundle,两个WIX包都有相同的升级代码.我想要发生的是新版本的WIX_Bundle应该卸载以前的版本(v1.0.0.0以及4个MSI)并安装新版本(v2.0.0.0和新的4个MSI).
但是当我尝试安装WIX_BUndle V2.0.0.0时,它会尝试安装新版本,而不是卸载以前的版本.我在这里错过了什么吗?
我也添加了RelatedBundle Action ="Upgrade"Id ="$(var.UpgradeCode)".但没有什么可以做的?
我的期望是否正确,卸载应该在新版本安装之前进行?我希望卸载以前的4个MSI,无论它们是否有升级,然后在新的WIX_Bundle(v2.0.0.0)中安装新版本.我可以强制这种情况发生吗?
在部署到生产环境之前,我正在OPS环境中对MSI进行兼容性检查.
我正在部署的第一部分是最新的MSI说"在MSIv1之上的MSIv2到OPS环境,MSIv2自动卸载MSIv1并安装MSIv2而没有任何问题.
现在,当我在MSIv2上安装MSIv1时.MSIv1已安装,它在安装的控制面板中显示.但是当我看到目录路径时,bin文件夹中没有.dll文件.
我正在日志文件中记录MSI的操作告诉...日志:不允许安装组件:{AC7BC9EB-4F1D-4FEE-B0C2-478966229D8E}因为存在具有更高版本密钥文件的相同组件
为什么TFS一次只在构建代理上运行一个构建?为什么它不能启动另一个进程并在同一个构建代理上启动另一个构建?
如果我错过了太明显的东西,请原谅我.