如何在Wix WebVirtualDir中指定空别名

时间:2013-04-23 11:21:58

标签: wix wix3.6

我对WiX世界还很陌生,所以如果下面的问题看似微不足道的话请跟我说。

我在将WebVirtualDir别名设为空时遇到问题。即我想允许用户指定虚拟目录,如果没有,那么Web应用程序将安装在DefaultWebSite中。

我已经创建了一个正确执行所有操作的项目,但用户必须在安装时清除虚拟目录才能在DefaultWebSite中安装。所以我要做的就是让“默认”虚拟目录显示为空。

我的WiX片段如下所示:

<Fragment>
<DirectoryRef Id="WEBINSTALLFOLDER" />

<ComponentGroup Id="IIS.Setup">
  <Component 
      Id="$(var.WebSiteName)" 
      KeyPath="yes" 
      Guid="$(var.WebsiteCode)" 
      Directory="WEBINSTALLFOLDER">
    <iis:WebSite 
        Id="WEBSITE_NAME" 
        Description="[WEBSITE_NAME]" 
        Directory="WEBINSTALLFOLDER" 
        ConfigureIfExists="no" 
        AutoStart="yes" 
        StartOnInstall="yes">
      <iis:WebAddress Id="AllUnassigned" IP="*" Port="80"/>
    </iis:WebSite>

    <iis:WebAppPool 
        Id="AppPool" 
        Name="[APP_POOL_NAME]" 
        ManagedRuntimeVersion="v4.0" 
        IdleTimeout="0" 
        RecycleMinutes="0"                
        ManagedPipelineMode="$(var.IIS_ManagedPipelineMode)" />

    <iis:WebVirtualDir 
        Id="vDir" 
        Alias="[WEB_APP_NAME]" 
        Directory="WEBINSTALLFOLDER" 
        WebSite="WEBSITE_NAME">
      <iis:WebApplication 
          Id="$(var.WebApplicationName)" 
          Name="$(var.WebSiteName)"
          WebAppPool="AppPool" />
    </iis:WebVirtualDir>
  </Component>
</ComponentGroup>

<Feature Id="IISSetup">
  <ComponentGroupRef Id="IIS.Setup" />
</Feature>

我尝试了多种方法,包括:

  • 从WebVirtualDir中删除别名属性:我知道这是一个nogo,因为别名是必需属性
  • 简单地设置alias =“”:也是不行,但至少我在编译时得到错误
  • 将[WEB_APP_NAME]设置为空:但我再次收到编译时错误,指出特定值可能不为空。

那么我该怎么做才能实现这个目标呢?

1 个答案:

答案 0 :(得分:1)

如果您希望虚拟目录指向网站的根目录,请将Alias属性设置为'/'