私は 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] を空に設定しています: しかし、特定の値が空でない可能性があるというコンパイル時エラーが再び発生します。
では、これを実現するにはどうすればよいでしょうか。