Конвертировать папку из виртуального каталога в приложение, используя WIX - PullRequest
6 голосов
/ 16 января 2012

Как я могу преобразовать каталог из виртуального каталога в приложение, используя WIX?

WIX устанавливает следующий виртуальный каталог в IIS, и я хочу, чтобы он также конвертировал веб-сервис папка для приложения.

Ответы [ 4 ]

8 голосов
/ 17 января 2012

Я не смог найти способ сделать это через WIX или расширение IIS, поэтому я прибег к вызову внешней команды. Для дальнейшего использования команды:

IIS 5

C:\Inetpub\AdminScripts\mkwebdir.vbs -c Localhost -w "Default Web Site" -v "sentry/webservice","{physical path}"
C:\Inetpub\AdminScripts\adsutil.vbs appcreateinproc w3svc/1/root/sentry/webservice

IIS 6

C:\Windows\System32\iisvdir.vbs /create "Default Web Site/Sentry/webservice" webservice "{physical path}"

IIS 7

C:\Windows\System32\inetsrv\appcmd add app /site.name:"Default Web Site" /path:/Sentry/webservice /physicalPath:"{physical path}"
2 голосов
/ 29 августа 2012

Это можно сделать с помощью IISExtension , как предлагает Даниэль Морритт. Поскольку очень трудно найти пример кода для этого, я подумал, что опубликую, как я это сделал.

<!-- Your example uses the default web site. -->
<iis:WebSite Id="DefaultWebSite" Description="Default Web Site" SiteId="*">
  <iis:WebAddress Id="DefaultWebAddress" Port="80"/>
</iis:WebSite>

<!-- Web Dir Properties to enable access to a Web Application. -->
<iis:WebDirProperties Id="AnonymousExecuteAndScript" 
                      Read="yes" 
                      Write="no" 
                      Execute="yes" 
                      Script="yes" 
                      AnonymousAccess="yes" 
                      Index="no" 
                      LogVisits="no"/>

<!-- Assumes the presence of this directory reference. -->
<DirectoryRef Id="SentryWebServiceDir">
  <Component Id="SentryWebServiceComponent" Guid="{GUID-GOES-HERE}">

    <iis:WebVirtualDir Id="SentryWebService"
                       DirProperties="AnonymousExecuteAndScript" 
                       Alias="Sentry/webservice"
                       Directory="SentryWebServiceDir"
                       WebSite="DefaultWebSite">

      <!-- Make this virtual directory a web application -->
      <iis:WebApplication Id="SentryWebServiceApp" Name="webservice" WebAppPool="DefaultAppPool"/>
    </iis:WebVirtualDir>

    <!-- Workaround for the need for a KeyPath for this component. -->
    <RegistryValue Root="HKLM"
              Key="SOFTWARE\YourCompany\Sentry\WebService"
              KeyPath="yes"
              Value="1"
              Type="binary"
              Name="Installed"
              Id="SentryWebServiceInstalled"/>
  </Component>
</DirectoryRef>

Все вышеперечисленное может быть вложено в элемент <Fragment>.

1 голос
/ 16 января 2012

Вы можете добавить ссылку на WiX IISExtension в свой проект и создать ее, используя это.

Хороший пример этого можно найти здесь: Использование WiX для созданиявиртуальный каталог IIS

0 голосов
/ 15 мая 2013

Я проверил этот подход, и он работает:

http://www.mail-archive.com/wix-users@lists.sourceforge.net/msg04374.html

В нем говорится, чтобы поместить весь путь в псевдоним, например

<iis:WebVirtualDir Id="VIRTDIR_Sentry_webservice"
                       Directory="WebService"
                       Alias="Sentry/webservice"
                       WebSite="SITE_Default"> ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...