2009-02-26 104 views
1

我已经能够触发C#自定义操作来覆盖MSI的安装和提交阶段。但是,在部署ASP.NET应用程序时,我希望能够在安装甚至开始之前执行检查。MSI启动条件自定义操作

我知道有启动条件,但是,我希望能够在这里插入自己的代码来处理自启动时的检查,因为从我看到的启动条件仅仅用于检查正确版本的IIS等等?

任何人都可以在这里指出我正确的方向,或者即使有一种方法来获得启动条件来发射一些C#吗?

回答

1

我认为使用自定义操作来设置属性值,然后运行启动条件来检查属性值将是一种方法。然而,这似乎并不适用于VS安装项目,因为自定义操作只有在启动条件之后才会运行。 WiX将允许更好的控制,并应允许更早执行自定义操作。

这样做的一个粗略的方法是让自定义操作抛出异常并安装回滚,但这将是一个丑陋的黑客。

我发现一个forum thread讨论如何检查某个服务是否在安装上运行,这可能会导致您在正确的方向。

+1

'论坛帖子'链接已死 – 2015-05-08 20:27:53

1

在LaunchConditions之后立即安排您的自定义动作立即。所有意图和目的的结果都是一样的。

在InstallShield中,只需通过下拉菜单选择它即可。或者使用WiX的,这将是这样的:

<Custom Action="BlahBlahBlah" After="LaunchConditions">1</Custom> 

与往常一样,任何人都开始使用MSI我建议你阅读The Definitive Guide to Windows Installer。它提供了宝贵的低级知识(使用Visual Studio安装项目和Orca),无论您是使用WiX,InstallShield还是其他任何工具构建MSI文件,该知识都适用。