1

我对 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 中删除 alias 属性:我知道这是一个 nogo,因为 alias 是必需的属性
  • 明确设置 alias="" :也是不行的,但至少我在编译时得到了错误
  • 将 [WEB_APP_NAME] 设置为空:但我再次收到编译时错误,即特定值可能不为空。

那么我应该怎么做才能做到这一点呢?

4

1 回答 1

1

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

于 2013-04-23T13:08:15.227 回答