2010-01-12 4 views
10

Il me manque quelque chose d'évident. Comment placez-vous le .dll dans un sous-répertoire appelé "bin" sous votre répertoire d'installation? J'essaie de suivre ce tutoriel: http://www.tramontana.co.hu/wix/lesson5.php#5.3 pour déployer un service Web WCF. J'ai donc besoin de copier les fichiers .svc et les fichiers .bin, avec quelques autres, mais en commençant par ces deux-là. J'utilise Wix 3.5 sous Visual Studio.WiX - comment créer un sous-répertoire 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> 

J'ai essayé de mettre bin \ sur l'ID et l'attribut name, et il n'a pas aimé non plus (caractère non valide).

Egalement, avec IIS, est la meilleure pratique à installer dans les fichiers c: \ program, ou dans c: \ inetpub \ wwwroot? Comment faire pour basculer le répertoire par défaut à c: \ inetpub \ wwwroot \ myproj?

Voici mes différentes premières expériences avec WiX.

Répondre

9

Chaque étiquette crée un nouveau répertoire. Pour chaque tag imbriqué, il y a un nouveau répertoire. Donc, si vous voulez avoir un "bin" sous INSTALLLOCATION, utilisez comme ci-dessous.

<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

Merci, c'est tout à fait logique! Je ne pensais pas imbriquer les éléments . – NealWalters

+0

En outre, si vous souhaitez avoir un répertoire vide, vous pouvez utiliser

+1

En outre, vous pouvez alias les répertoires avec des ID alternatifs en ajoutant un élément enfant. Ceci est utile si vous créez des composants wix réutilisables sous un élément 'DirectoryRef', car vous ne pouvez pas encore savoir dans quel dossier les applications veulent installer ce composant. –

Questions connexes