Преобразование виртуального каталога в веб-приложение в WiX - PullRequest
2 голосов
/ 16 сентября 2010

Я создаю новый WebSite всякий раз, когда установлена ​​функция A или B:

<Component Id="IIS.HelloWorld" Guid="6FA5EF90-C9D9-463C-9CC7-0410670AFBD1" Directory="TARGETDIR">
  <iis:WebSite Id="IIS.HelloWorld" Description="Hello World for Web" Directory="INSTALLDIR">
    <iis:WebAddress Id="HelloWorldAddress" IP="*" Port="8080"/>
  </iis:WebSite>
</Component>

Веб-сайт указывает на INSTALLDIR (скажем, C: \ MyFiles).Ниже INSTALLDIR у меня есть 2 дополнительные папки: Сервис (C: \ MyFiles \ Service) и Веб (C: \ MyFiles \ Web)

С веб-сайтауказывает на INSTALLDIR, все подкаталоги ( Service и Web ) автоматически рассматриваются как виртуальные каталоги (?) - я вижу их связанными через консоль управления IIS и могу получить доступих через мой браузер.

Однако их необходимо «преобразовать» в приложения (сделать это вручную, щелкнув правой кнопкой мыши виртуальный каталог и выбрав «Преобразовать в приложение»), чтобы они работали должным образом (они содержат ASPX).и файлы ASMX).

Поэтому я добавил следующий компонент, чтобы попытаться преобразовать их в «Приложения»:

<Component Id="IIS.HelloWorld.WebSite.VirtualDirectory" Guid="GUID-44D1-48D9-BB3C-4B0126FB83E5" Directory="TARGETDIR">
  <iis:WebVirtualDir Id="IIS.HelloWorld.WebSite.VirtualDirectory" Alias="Service" Directory="INSTALLDIR.WebSite" WebSite="IIS.HelloWorld">
    <iis:WebApplication Id="IIS.HelloWorld.WebSite.VirtualDirectory" Name="Service"/>
  </iis:WebVirtualDir>
</Component>

Но виртуальные каталоги не были преобразованы в «Приложения»; они по-прежнему просто виртуальные каталоги.

Вопрос: Как преобразовать виртуальные каталоги в приложения в WiX? Или как правильно справиться с этой ситуацией?

Спасибо!

1 Ответ

0 голосов
/ 16 сентября 2010

Мой плохой. Я связал неправильный псевдоним виртуального каталога с неправильным именем веб-приложения.

Этот код работает:

<Component Id="IIS.HelloWorld.WebSite.VirtualDirectory" Guid="GUID-44D1-48D9-BB3C-4B0126FB83E5" Directory="TARGETDIR">
  <iis:WebVirtualDir Id="IIS.HelloWorld.WebSite.VirtualDirectory" Alias="Web" Directory="INSTALLDIR.WebSite" WebSite="IIS.HelloWorld">
    <iis:WebApplication Id="IIS.HelloWorld.WebSite.VirtualDirectory" Name="Web"/>
  </iis:WebVirtualDir>
</Component>
...