2010-01-12 18 views
10

Me falta algo obvio. ¿Cómo pones los .dll en un subdirectorio llamado "bin" debajo de tu directorio de instalación? Intento seguir este tutorial: http://www.tramontana.co.hu/wix/lesson5.php#5.3 para implementar un servicio web WCF. Así que necesito copiar los archivos .svc y los archivos .bin, junto con algunos otros, pero comenzando con solo estos dos. Estoy usando Wix 3.5 en Visual Studio.WiX - cómo crear el subdirectorio bin?

<Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="ProgramFilesFolder"> 
      <Directory Id="INSTALLLOCATION" Name="TFBIC.RCT.WCFWebServicesWIXSetup"> 
       <Component Id="ProductComponent" Guid="E9A375FB-DF6A-4806-8B0B-03BE4A50802F"> 
        <File Id='SVC1' Name='CreateUpdateReturnService.svc' DiskId='1' Source='../TFBIC.RCT.WCFWebServices/CreateUpdateReturnService.svc' /> 
       </Component> 
      </Directory> 
      <Directory Id="INSTALLLOCATION" Name="TFBIC.RCT.WCFWebServicesWIXSetup"> 
       <Component Id="ProductComponent" Guid="E9A375FB-DF6A-4806-8B0B-03BE4A50802F"> 
        <File Id='DLL1' Name='TFBIC.RCT.WCFWebServices.dll' DiskId='1' Source='../TFBIC.RCT.WCFWebServices/bin/TFBIC.RCT.WCFWebServices.dll' /> 
       </Component> 
      </Directory> 
     </Directory> 
     <Component Id='TestWebVirtualDirComponent' Guid='9586807E-9065-48e8-8E73-13A9191962E5'> 
      <iis:WebVirtualDir Id='TestWebVirtualDir' Alias='Test' Directory='InstallDir' 
       WebSite='DefaultWebSite'> 
       <iis:WebApplication Id='TestWebApplication' Name='Test' /> 
      </iis:WebVirtualDir> 
     </Component> 

    </Directory> 

He intentado poner \ bin en el ID y el atributo de nombre, y no me gusta, ya sea (carácter no válido).

Además, con IIS, ¿es recomendable instalar en c: \ archivos de programa o en c: \ inetpub \ wwwroot? ¿Cómo cambio el directorio predeterminado a c: \ inetpub \ wwwroot \ myproj?

Estos son mis primeros experimentos con WiX.

Respuesta

9

Cada etiqueta crea un nuevo directorio. Para cada etiqueta anidada, hay un nuevo directorio. Por lo tanto, si desea tener un "contenedor" bajo INSTALLLOCATION, use lo siguiente.

<Directory Id="INSTALLLOCATION" Name="TFBIC.RCT.WCFWebServicesWIXSetup"> 
    <Directory Id="BinFolder" Name="bin"> 
     <Component Id="ProductComponent" Guid="E9A375FB-DF6A-4806-8B0B-03BE4A50802F"> 
      <File Id='SVC1' Name='CreateUpdateReturnService.svc' DiskId='1' Source='../TFBIC.RCT.WCFWebServices/CreateUpdateReturnService.svc' /> 
     </Component> 
    </Directory> 
</Directory> 
+0

Gracias, eso tiene mucho sentido! No estaba pensando en anidar los elementos . – NealWalters

+0

Además, si desea tener un directorio vacío, puede usar

+1

Además, puede alias directorios con Id. Alternativos agregando un elemento hijo. Esto es útil si está creando componentes wix reutilizables en un elemento 'DirectoryRef', ya que aún no puede saber en qué carpeta las aplicaciones desean instalar ese componente. –

Cuestiones relacionadas