ユーザーがドロップダウンから Web サイトを選択し (ドロップダウンには使用可能なすべての Web サイトが一覧表示されます)、仮想ディレクトリの名前を指定できるインストーラーを作成しました。
コード:
<iis:WebVirtualDir Id="PCVDir" Alias="[VDNAME]" Directory="dir_MDMCenter_0" WebSite="MySelectedWebSite">
<iis:WebApplication Id="PCWebApp" Name="[VDNAME]" WebAppPool="MyAppPool" />
</iis:WebVirtualDir>
<iis:WebAppPool Id="MyAppPool" Name="[APPPOOLNAME]" ManagedRuntimeVersion="v4.0" ManagedPipelineMode="integrated" Identity="localSystem" IdleTimeout="0" RecycleMinutes="0">
</iis:WebAppPool>
<iis:WebSite Id="MySelectedWebSite" Description="[MYWEB_WEBSITE_DESCRIPTION]">
<iis:WebAddress Id="AllUnassigned1" Port="[MYWEB_WEBSITE_PORT]" IP="[MYWEB_WEBSITE_IP]" Header="[MYWEB_WEBSITE_HEADER]" />
</iis:WebSite>
ユーザーが「既定の Web サイト」以外の Web サイトをインストールして選択すると、仮想ディレクトリが常に「既定の Web サイト」に作成されます。
分析:
作成した新しい Web サイトはポート 80 で実行されます。既定の Web サイトもポート 80 で実行されるため停止しました。他の Web サイトにインストールすると、仮想ディレクトリが既定の Web サイトの下に移動します。WIX または IIS のどこかに、ポート 80 がデフォルトの Web サイトにマップされているというバインディングがあるようです。
ログで、すべての変数 (MYWEB_WEBSITE_DESCRIPTION、MYWEB_WEBSITE_PORT) の値が正しいことを確認しました。それでも、アプリケーションは既定の Web サイトの下に置かれます。
何か間違ったことをしている場合は、誰かが私を修正してください。