Wix:我可以用自定义动作走多远?

zax*_*y78 3 c# windows-installer wix

我想构建一个Wix安装程序,它将检测我的一些程序并更新它们.

我有c#代码(使用另一个DLL)检查系统上的一些东西,然后我想下载所有应用程序的最新版本的表,决定我需要更新哪个应用程序,然后下载并更新所选那些.

所以我的问题是,Wix可以执行以下操作:

1)使用c#运行另一个dll调用?

2)从网上下载文件并解析它(假设 - 也使用c#)?

3)转到链接并下载MSI\EXE?

4)安装MSI\EXE(假设在静音模式下运行)?

5)从系统中卸载旧的其他应用程序?

Chr*_*ter 5

Windows Installer有一个互斥锁,每个机器只允许1个执行序列,每个进程只允许1个UI序列.由于此限制,一个MSI无法安装另一个MSI.这周围有黑客攻击,但它们没有遵循良好的设计(不提供适当的高程支持或静默安装/卸载支持).

您应该谨慎使用自定义操作.正确设计的自定义操作应该像Windows Installer中内置的标准操作一样.这是支持事务安装,并通过自定义表进行数据驱动.

对于你所描述的需要完成的东西,一个更好的候选者可能是一个引导程序/ chainer,如WiX的Burn功能.