1

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

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

谁能在这里指出我正确的方向,或者即使有办法让启动条件触发一些 C#?

4

2 回答 2

1

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

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

我发现了一个论坛线程,讨论如何检查某个服务是否在安装时运行,这可能会引导您朝着正确的方向前进。

于 2009-02-26T22:45:40.613 回答
1

只需在 LaunchConditions 之后立即安排您的自定义操作。对于所有意图和目的,结果都是相同的。

在 InstallShield 中,这只是通过下拉菜单选择运行时间的问题。或者使用 WiX,这将是这样的:

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

与往常一样,对于任何开始使用 MSI 的人,我建议阅读Windows Installer 权威指南。它提供了非常宝贵的底层知识(使用 Visual Studio 安装项目和 Orca),无论您使用 WiX、InstallShield 还是任何其他工具来构建 MSI 文件,这些知识都适用。

于 2009-02-27T04:33:13.167 回答