Nic*_*eri 8 iis iis-7 wix wix3.5
背景:我有一个Wix安装程序,在现有的IIS网站中创建虚拟目录.创建虚拟目录(在安装之前它不存在)但是应该已经创建了IIS网站(用户只需选择要安装到ListBox中的网站).
问题:在卸载时,安装到的IIS网站的物理路径变为空白,该属性没有值.下面是我的主要wix文件的简化版本.我不确定为什么卸载会影响IIS网站,但任何想法都表示赞赏.
注意:我在Wix 3.5和Windows Server 2008 R2,IIS 7上.
<Product>
<Property Id='WEBSITE_DESCRIPTION'>
<RegistrySearch Id='RememberPropertyWEBSITE_DESCRIPTION' Root='HKCU'
Key='SOFTWARE\Company\Product' Name='InstalledWebsiteDescription'
Type='raw' />
</Property>
<Property Id='WEBSITE_PORT'>
<RegistrySearch Id='RememberPropertyWEBSITE_PORT' Root='HKCU'
Key='SOFTWARE\Company\Product' Name='InstalledWebsitePort'
Type='raw' />
</Property>
<Component Id='PropertiesToSave' Directory='ApplicationFolder'>
<RegistryValue Root='HKCU' Key='SOFTWARE\Company\Product'
Name='InstalledWebsiteDescription' Value='[WEBSITE_DESCRIPTION]'
Type='string' />
<RegistryValue Root='HKCU' Key='SOFTWARE\Company\Product'
Name='InstalledWebsitePort' Value='[WEBSITE_PORT]'
Type='string' />
<RemoveFolder Id='CleanupApplicationFolder' On='uninstall' />
</Component>
<Directory Id='TARGETDIR' Name='SourceDir'>
<Component Id='TestWebVirtualDirComponent' Guid='12345678-6304-410E-A808-E3585379EADB'>
<CreateFolder />
<iis:WebVirtualDir Id='TestWebVirtualDir' Alias='[WEBSITE_VIRTUALDIR]' Directory='TARGETDIR' WebSite='MyWebsite'>
<iis:WebApplication Id='TestWebApplication' Name='Test' />
</iis:WebVirtualDir>
</Component>
</Directory>
<iis:WebSite Id="MyWebsite" Description="[WEBSITE_DESCRIPTION]" SiteId="*">
<iis:WebAddress Id="AllUnassigned" Port="[WEBSITE_PORT]" />
</iis:WebSite>
<Feature>
<ComponentRef Id='TestWebVirtualDirComponent'/>
<ComponentRef Id='PropertiesToSave'/>
</Feature>
</Product>
Run Code Online (Sandbox Code Playgroud)
WiX IIsExtension识别WebSite by Description属性和子WebAddress元素的Port属性.因此,在安装应用程序时,以某种方式设置WEBSITE_DESCRIPTION和WEBSITE_PORT.但是,当您运行卸载时,未设置上述属性,您将获得所描述的行为.
解决方案是将所需的属性值保存到系统注册表,并使用RegistrySearch元素读取值并设置适当的属性.这被称为"记住属性"模式,Rob Mensching 在此完美解释.
| 归档时间: |
|
| 查看次数: |
1880 次 |
| 最近记录: |