2010-01-12 16 views
10

Мне не хватает чего-то очевидного. Как вы поместите файл .dll в подкаталог под названием «bin» в каталоге установки? Я пытаюсь следовать этому руководству: http://www.tramontana.co.hu/wix/lesson5.php#5.3 для развертывания веб-службы WCF. Поэтому мне нужно скопировать файлы .svc и .bin, а также несколько других, но только с этими двумя. Я использую Wix 3.5 в Visual Studio.WiX - как создать подкаталог 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> 

Я попытался положить \ Bin на ID и имя атрибута, и это не нравится ни один (неверный символ).

Кроме того, с IIS, лучше всего устанавливать в c: \ program files или в c: \ inetpub \ wwwroot? Как переключить каталог по умолчанию на c: \ inetpub \ wwwroot \ myproj?

Это мои первые первые эксперименты с WiX.

ответ

9

Каждый тег создает новый каталог. Для каждого вложенного тега есть новый каталог. Итак, если вы хотите иметь «bin» в разделе INSTALLLOCATION, используйте, как показано ниже.

<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

Спасибо, это имеет смысл! Я не думал о вложении элементов . – NealWalters

+0

Кроме того, если вы хотите иметь пустой каталог, вы можете использовать

+1

Кроме того, вы можете создавать псевдонимы с альтернативными идентификаторами, добавляя дочерний элемент. Это полезно, если вы создаете повторно используемые компоненты wix под элементом «DirectoryRef», поскольку вы еще не можете знать, в какой папке приложения хотят установить этот компонент. –

Смежные вопросы