我正在使用Wix为Web应用程序构建一个简单的安装程序。我希望使用现有的应用程序池。以下代码在安装应用程序时可以正常工作。
<iis:WebAppPool Id='MyAppPool' Name='CRMAppPool' />
这将使用现有的CRMAppPool设置虚拟目录。
问题是,当我卸载应用程序时,它会删除应用程序池。
我该如何防止这种情况?
答案 0 :(得分:4)
将WebAppPool元素放在其自己的组件中,并将该组件标记为永久性。 permananent属性将确保在卸载时不会删除组件。
答案 1 :(得分:1)
首先,我想问你为什么要这样做。一旦我多年前第一次了解到.NET 1.1 webapp可以JIT然后.NET 2.0 webapp失败,我一直都非常偏爱共享应用程序池。
假设您已经考虑了所有这些并且确实想要共享应用程序池,我不会使用永久组件并在上面进行描述。我宁愿用共享组件来做。由于App Pool不能真正成为密钥文件,我会创建一个虚假的注册表项,作为密钥文件提供服务,并将应用程序池作为配套资源。
然后,我会在所有安装中复制此组件,以便MSI可以引用计算组件,当最后一次安装从计算机上移除时,它将删除应用程序池。