我刚刚开始使用WiX,我真的很感激一些建议。
我已经创建了一个安装了几个Windows服务的WiX项目,但我需要根据环境以不同方式设置服务名称,用户名/密码和.config文件xml。通过单选按钮在UI中设置环境,即ENVIRONMENT设置为PROD,UAT或SYSTEST。
我现在不确定如何进行与环境相关的更改。我应该为每个环境创建一个具有条件的组件吗?这意味着很多重复,也许有一个更优雅的解决方案?有什么我需要注意的(我已经读过,如果我自定义名称,该服务可能无法卸载?)。
谢谢!
答案 0 :(得分:0)
由于目前还没有答案,我想我会说我最终做了什么。
对每个环境重复的每个组件的条件都是维护的噩梦,所以我决定将所有与环境相关的属性放在VBscript自定义操作中。当UI不可用时,我必须将它持久化到注册表并在卸载\升级期间检索它,但最初它似乎工作得很好。
一旦我告诉它在安装时启动服务我就遇到了问题 - 当卸载运行时,它无法识别服务正在运行的事实,它虽然向上窗口告诉我文件被锁定。从日志中,它已正确检索服务名称,因此我无法弄清楚原因,但肯定是服务名称不在msi表中。
这一切都变得有点复杂和混乱(并且让初学者感到困惑!),所以我决定尝试一种基于优秀帖子的不同方法WiX tricks and tips - 创建实时,测试,培训,。 ..版本使用相同的源文件。
它的工作非常好,并且可以更轻松地在不同的分支机构(共享相同的环境)进行处理升级。
唯一的缺点是构建时间增加了一点,但这不是问题。 希望这对某人有用。