我使用过WiX,InstallShield和其他安装生成器,除了头痛之外什么都没有经历过。
是否有任何安装库可以链接到实际的C ++ / C#程序并作为安装程序可执行文件运行,而不需要用自定义声明性安装语言编写ala WiX / InstallShield?< / p>
编辑:
问题是在WiX中放置复杂的决策逻辑是乏味的。调试自定义操作是一场噩梦,调试托管CA更糟糕。由于AD要求,我们的CA需要在远程机器上执行,这为调试过程增加了更多的地狱。当我坐下来问“什么是WiX给我”时,答案是“很少”。我花费大部分时间来对抗WiX系统,而不是改进/维护。如果存在一个提供事务性文件/注册表项支持并专注于与安装程序相关的功能的库,那就是我想要的。
答案 0 :(得分:1)
您没有说出遇到的确切问题,但您似乎对您尝试过的工具的可用性感到不满意。我建议您尝试其他设置创作工具,以确定最适合您需求的工具。您可以在此处找到一个列表:http://en.wikipedia.org/wiki/List_of_installation_software
根据经验,免费工具很难使用,但完成工作,商业工具易于使用,但它们不是免费的。
关于您的实际问题,您的应用程序中不能使用任何安装程序库。您将只找到安装引擎。您基本上可以在Windows Installer(MSI包和Active Directory支持)和专有引擎之间进行选择,这些引擎可能会或可能不会以您希望的方式工作。
答案 1 :(得分:1)
如果您可以支持安装程序到Windows Vista +,那么您应该查看注册表和NTFS的Windows事务支持。可以在CodeProject找到非常好的概述。
是的MSI非常复杂,但我认为您的许多麻烦源于您在安装过程中尝试做太多的事实。
安装软件后有时间做一些事情。这个时间称为第一次启动,您可以使用完全控制的用户界面执行AD部署等复杂操作,这样更容易调试。但我怀疑你是否会因AD失败而获得回滚支持。
一个经验法则是,您不应该更改AD架构以使您的软件满意,因为许多客户都禁止架构更改。经理应将其理解为:由于AD部署问题,您将失去客户。 IT管理员可以对所购买的软件产生重大影响,而不是。
如果您遇到MSI问题,可能是由于意外的MSI组件违规而导致无法正常更新。关于我到目前为止遇到的问题,我做了一个小writeup。合并x32/x64 installations潜伏着许多问题。