2010-01-12 54 views
10

Tôi thiếu điều gì đó hiển nhiên. Làm thế nào để bạn đặt của .dll trong một thư mục con được gọi là "bin" dưới thư mục cài đặt của bạn? Tôi đang cố gắng làm theo hướng dẫn này: http://www.tramontana.co.hu/wix/lesson5.php#5.3 để triển khai dịch vụ web WCF. Vì vậy, tôi cần sao chép tệp .svc và tệp .bin, cùng với một vài tệp khác, nhưng chỉ bắt đầu bằng hai tệp này. Tôi đang sử dụng Wix 3.5 dưới Visual Studio.WiX - cách tạo thư mục con 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> 

Tôi đã thử đặt \ bin trên ID và thuộc tính tên và không giống (ký tự không hợp lệ).

Ngoài ra, với IIS, cách tốt nhất để cài đặt trong tệp c: \ program, hoặc trong c: \ inetpub \ wwwroot? Làm cách nào để chuyển thư mục mặc định thành c: \ inetpub \ wwwroot \ myproj?

Đây là các thử nghiệm đầu tiên khác nhau của tôi với WiX.

Trả lời

9

Mỗi thẻ sẽ tạo một thư mục mới. Đối với mỗi thẻ lồng nhau, có một thư mục mới. Vì vậy, nếu bạn muốn có một "bin" dưới INSTALLLOCATION, hãy sử dụng như dưới đây.

<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

Xin cảm ơn, điều đó có ý nghĩa hoàn hảo! Tôi đã không suy nghĩ về làm tổ các yếu tố . – NealWalters

+0

Ngoài ra, nếu bạn muốn có một thư mục trống, bạn có thể sử dụng

+1

Ngoài ra, bạn có thể bí danh các thư mục với Id thay thế bằng cách thêm yếu tố con. Điều này rất hữu ích nếu bạn là tác giả của các thành phần wix có thể tái sử dụng trong phần tử 'DirectoryRef', vì bạn không thể biết được trong thư mục nào các ứng dụng muốn cài đặt thành phần đó. –

Các vấn đề liên quan