我在下面有这个,但我想以这样的方式更改它,以便将Web应用程序安装到现有的网站。目前它安装网站和所有文件,但然后在卸载时也删除所有文件,我只是希望它将文件添加为Web应用程序。我怎么这样做呢?
<?xml version="1.0" encoding="utf-8" ?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:iis="http://schemas.microsoft.com/wix/IIsExtension"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<Fragment>
<DirectoryRef Id="INSTALLLOCATION">
<Component Id="C_IISWebsite" Guid="{138B3868-24E8-4D7B-8793-0D254AF349D4}" KeyPath="yes">
<!-- This does not create a user, it's just an object that's referenced by the WebAppPool component -->
<util:User Id="WebAppPoolUser" CreateUser="no" Name="[WEB_APP_POOL_IDENTITY_USERNAME]"
Password="[WEB_APP_POOL_IDENTITY_PWD]" Domain="[WEB_APP_POOL_IDENTITY_DOMAIN]"/>
<!-- The "Identity" attritbute below needs to be set to "other" to use the util:User defined above -->
<iis:WebAppPool Id="WebAppPool" Name="[WEB_APP_POOL_NAME]" Identity="other" User="WebAppPoolUser"/>
<iis:WebSite Id="DefaultWebSite" Description="[WEBSITE_NAME]" Directory="INSTALLLOCATION" >
<iis:WebAddress Id="AllUnassigned" Port="80"/>
</iis:WebSite>
<iis:WebVirtualDir Id="My.VirtualDir" Alias="mdxWebSite" Directory="INSTALLLOCATION" WebSite="DefaultWebSite">
<iis:WebApplication Id="Application" Name="mdxWebSite" WebAppPool="WebAppPool" />
</iis:WebVirtualDir>
</Component>
</DirectoryRef>
</Fragment>
</Wix>
答案 0 :(得分:2)
我认为您的问题与安装程序不知道要卸载什么有关,因此会删除默认或父网站。看一下this sample by John Robbins,关键是将配置存储在注册表中,以便卸载知道要删除的内容,在<Component> ... </Compoonent>
元素内执行以下操作应该这样做,不要忘记插入适当的名称/数据和指南。
<!--The component for installer properties I need to save so they can be used on the uninstall.-->
<Component Id="SetupRegistryValues" Guid="{...}" KeyPath="yes" >
<RegistryValue Root="HKLM" Key="SOFTWARE\CompanyName\ProductName\Install" Name="WebAppName" Value="[WEB_APP_NAME]" Type="string" />
<RegistryValue Root="HKLM" Key="SOFTWARE\CompanyName\ProductName\Install" Name="WebSiteName" Value="[WEBSITE_NAME]" Type="string" />
答案 1 :(得分:1)
如果您要安装您的网络应用程序&amp;现有网站的虚拟目录,也不想在卸载产品时删除您的网站;然后在一个单独的片段(不在任何组件内)定义您的网站。如下:
<Fragment>
<iis:WebSite Id="XYZ_WebSite" Description="Default Web Site">
<iis:WebAddress Id="AllUnassigned" Port="80" />
</iis:WebSite>
</Fragment>
现在定义组件以部署您的Web应用程序\ Vdirs并从节点引用此站点ID,如下所示:
<iis:WebVirtualDir Id="XYZ_VirtualDirectory_A" Alias="MyXYZ_V_ DIR" Directory="[MYDIR]" WebSite="XYZ_WebSite">