如何让我的Wix安装程序使用IIS 6中的现有应用程序池?

时间:2010-07-16 15:55:24

标签: iis-6 wix

我正在使用Wix为Web应用程序构建一个简单的安装程序。我希望使用现有的应用程序池。以下代码在安装应用程序时可以正常工作。

<iis:WebAppPool Id='MyAppPool' Name='CRMAppPool'  />

这将使用现有的CRMAppPool设置虚拟目录。

问题是,当我卸载应用程序时,它会删除应用程序池。

我该如何防止这种情况?

2 个答案:

答案 0 :(得分:4)

将WebAppPool元素放在其自己的组件中,并将该组件标记为永久性。 permananent属性将确保在卸载时不会删除组件。

答案 1 :(得分:1)

首先,我想问你为什么要这样做。一旦我多年前第一次了解到.NET 1.1 webapp可以JIT然后.NET 2.0 webapp失败,我一直都非常偏爱共享应用程序池。

假设您已经考虑了所有这些并且确实想要共享应用程序池,我不会使用永久组件并在上面进行描述。我宁愿用共享组件来做。由于App Pool不能真正成为密钥文件,我会创建一个虚假的注册表项,作为密钥文件提供服务,并将应用程序池作为配套资源。

然后,我会在所有安装中复制此组件,以便MSI可以引用计算组件,当最后一次安装从计算机上移除时,它将删除应用程序池。