2010-01-12 3 views
10

Ich vermisse etwas offensichtlich. Wie legen Sie die DLLs in ein Unterverzeichnis namens "bin" unter Ihrem Installationsverzeichnis? Ich versuche, diesem Tutorial zu folgen: http://www.tramontana.co.hu/wix/lesson5.php#5.3 , um einen WCF-Webdienst bereitzustellen. Also muss ich die .svc-Dateien und die .bin-Dateien zusammen mit ein paar anderen kopieren, aber mit nur diesen beiden beginnen. Ich verwende Wix 3.5 unter Visual Studio.WiX - Wie erstelle ich ein Unterverzeichnis?

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

Ich habe versucht, \ ist auf der ID und den Namen Attribut setzen, und es nicht wie entweder (ungültiges Zeichen).

Auch mit IIS ist die Best Practice in C: \ Programmdateien oder in c: \ inetpub \ wwwroot zu installieren? Wie ändere ich das Standardverzeichnis auf c: \ inetpub \ wwwroot \ myproj?

Dies sind meine verschiedenen ersten Experimente mit WiX.

Antwort

9

Jedes Tag erstellt ein neues Verzeichnis. Für jedes verschachtelte Tag gibt es ein neues Verzeichnis. Wenn Sie also unter INSTALLLOCATION ein "Bin" haben möchten, verwenden Sie bitte wie folgt.

<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

Danke, das macht Sinn! Ich habe nicht daran gedacht, die Elemente zu verschachteln. – NealWalters

+0

Wenn Sie ein leeres Verzeichnis haben möchten, können Sie auch

+1

verwenden. Sie können auch Verzeichnisse mit alternativen IDs umbenennen, indem Sie eine Kindelement. Dies ist nützlich, wenn Sie wiederverwendbare WIX-Komponenten unter einem DirectoryRef-Element erstellen, da Sie noch nicht wissen können, in welchem ​​Ordner die Anwendungen diese Komponente installieren möchten. –