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="" を設定する : これもダメですが、少なくともコンパイル時にエラーが発生します
  • [WEB_APP_NAME] を空に設定しています: しかし、特定の値が空でない可能性があるというコンパイル時エラーが再び発生します。

では、これを実現するにはどうすればよいでしょうか。

4

1 に答える 1

1

仮想ディレクトリが Web サイトのルートを指すようにする場合は、Alias属性をに設定します'/'

于 2013-04-23T13:08:15.227 に答える