2012-01-16 19 views

Respuesta

8

no pude encontrar una manera de hacer esto a través de WIX o la extensión de IIS, por lo que recurrió a llamar a un comando externo. En el futuro, los comandos son:

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}" 
+0

¿Puede publicar el origen de esta información? Especialmente para IIS6. Gracias ! –

1

Usted puede agregar una referencia a la WiX IISExtension a su proyecto y crear una con esto.

Un buen ejemplo de esto se puede encontrar aquí: Using WiX to create an IIS virtual directory

+0

Esa es la forma en que el centinela existente virtual Se crea el directorio y no funciona para crear una aplicación en un directorio virtual existente (tenga en cuenta la propiedad 'Sitio web' de iis: WebVirtualDir) – staterium

2

Thi s se puede hacer con el IISExtension, como sugiere Daniel Morritt. Como es muy difícil encontrar un código de muestra para esto, pensé en publicar cómo lo hice.

<!-- 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> 

Todo lo anterior se pueden anidar en un elemento de <Fragment>.

Cuestiones relacionadas