2013-12-16 16 views
13

Come creare una sottocartella nella cartella di installazione (che nel mio caso è denominata WWU)? Sto creando una cartella di installazione denominata WWU in Program Files, voglio creare una sottocartella denominata immagine all'interno della cartella WWU che conterrà alcuni file di immagini necessari. Ho provato a farlo utilizzando il codice riportato di seguito, ma non riesco a ottenere la creazione della cartella.Come creare una sottocartella nella cartella di installazione usando WiX

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 

<Product Id="{AADE647C-36C5-48A7-A88F-5AB8D6BAE7FE}" Name="WWU 1.0" Language="1033" Version="1.0.0.0" Manufacturer="Aricent Group" UpgradeCode="f89a1900-bdb0-4fec-a035-e69ae882716b"> 
    <Package Id="*" Keywords="Installer" Description="Aricent's WWU 1.0 Installer" Comments="WWU is a registered trademark of Aricent Group." Manufacturer="Aricent Group" InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> 

    <UIRef Id="WixUI_Minimal"/> 
    <WixVariable Id="WixUILicenseRtf" Value="$(var.WWU_UI.TargetDir)License.rtf"/> 
    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 

    <Media Id= "1" Cabinet="WWU.cab" EmbedCab="yes"/> 

    <Feature Id="Complete" Title="WWU`_Installer" Description="The complete package." Display="expand" ConfigurableDirectory="INSTALLFOLDER" Level="1"> 
     <ComponentGroupRef Id="ProductComponents"/> 
     <ComponentGroupRef Id="Shortcuts"/> 
    </Feature> 

    <Feature Id="ImagePack" Title="Images" Level="1"> 
     <ComponentGroupRef Id="ImageFiles"/> 
    </Feature> 
</Product> 

<Fragment> 
<UI> 
    <Dialog Id="UserRegistrationDlg" Width="360" Height="250" Title="[ProductName] Setup" NoMinimize="yes"> 
     <Control Id="NameLabel" Type="Text" X="45" Y="70" Width="100" Height="15" TabSkip="no" Text="User Name:"/> 
     <Control Id="NameEdit" Type="Text" X="45" Y="80" Width="220" Height="18" Property="USERNAME" Text="{80}" /> 
     <Control Id="OrganizationalLabel" Type="Text" X="45" Y="110" Width="100" Height="15" TabSkip="no" Text="Organization:"/> 
    </Dialog> 
</UI> 
</Fragment> 

<Fragment> 
    <Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="ProgramFilesFolder"> 
      <Directory Id="INSTALLFOLDER" Name="WWU" /> 
     </Directory> 
     <Directory Id="ProgramMenuFolder" Name="Programs"> 
      <Directory Id="ProgramMenuDir" Name="WWU 1.0" /> 
     </Directory> 
     <Directory Id="DesktopFolder" Name="Desktop" /> 
     <Directory Id="ImageFolder" Name="image"/> 
    </Directory> 
</Fragment> 

<Fragment> 
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> 
     <!-- TODO: Remove the comments around this Component element and the ComponentRef below in order to add resources to this installer. --> 
     <Component Id="MainExecutable" Guid="{434D54CC-D875-4B45-8125-CCCB8119A053}"> 
      <!-- TODO: Insert files, registry keys, and other resources here. --> 
      <File Id="WWUEXE" Name="WWU_UI.exe" Source="$(var.WWU_UI.TargetDir)WWU_UI.exe" KeyPath="yes"> 
       <Shortcut Id="startmenuWWU" Directory="ProgramMenuDir" Name="WWU Tutorial 1.0" WorkingDirectory="IINSTALLDIR" Icon="WWU_UI.exe" Advertise="yes"/> 
       <Shortcut Id="desktopWWU" Directory="DesktopFolder" Name="WWU Tutorial 1.0" WorkingDirectory="IINSTALLDIR" Icon="WWU_UI.exe" Advertise="yes"/> 
      </File> 
     </Component> 
     <Component Id="SQLiteInterop" Guid="{7DBF7C38-3001-403F-911E-AF3C318F6219}"> 
      <File Id="Interopdll" Name="SQLite.Interop.dll" Source="$(var.WWU_UI.TargetDir)x86\SQLite.Interop.dll" /> 
     </Component> 
     <Component Id="SQLitedll" Guid="{DB1FB7CC-6D89-478B-9276-8F4F987027AC}" > 
      <File Id="SQLite" Name="System.Data.SQLite.dll" Source="$(var.WWU_UI.TargetDir)System.Data.SQLite.dll" /> 
     </Component> 
     <Component Id="SQLiteLinqdll" Guid="{C65A7DD8-6F1A-4E02-86B2-2B2EDFFDD684}" > 
      <File Id="SQLiteLinq" Name="System.Data.SQLite.Linq.dll" Source="$(var.WWU_UI.TargetDir)System.Data.SQLite.Linq.dll" /> 
     </Component> 
     <Component Id="Log4net" Guid="{5266C74E-D7F8-4091-90C2-B661A63B7909}" > 
      <File Id="Log4netdll" Name="log4net.dll" Source="$(var.WWU_UI.TargetDir)log4net.dll" /> 
     </Component>   
    </ComponentGroup> 

    <ComponentGroup Id="Shortcuts" Directory="ProgramMenuDir"> 
     <Component Id="ProgramMenuShortcut"> 
      <RemoveFolder Id="ProgramMenuDir" On="uninstall" /> 
      <RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes" /> 
     </Component> 
    </ComponentGroup> 

    <!-- image files for image folder --> 
    <ComponentGroup Id="ImageFiles" Directory="ImageFolder"> 
     <Component Id="Asfo" Guid="{B8031331-076F-4C75-B231-3EBCBBD8D29C}"> 
      <File Id="Asfoimg" Name="0sf0.ico" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\0sfo.ico" /> 
     </Component> 
     <Component Id="Asfob" Guid="{D0D78785-3CFC-49C7-9470-90250034D331}"> 
      <File Id="Asfobimg" Name="0sfob.ico" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\0sfob.ico" /> 
     </Component> 
     <Component Id="Aufo" Guid="{6912A60F-F612-4AB8-B530-A0EA71AF8587}"> 
      <File Id="Aufoimg" Name="0ufo.ico" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\0ufo.ico" /> 
     </Component> 
     <Component Id="Aufob" Guid="{AD38A28F-3518-4AA4-B169-EC5077844E83}"> 
      <File Id="Aufobimg" Name="0ufob.ico" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\0ufob.ico" /> 
     </Component> 
     <Component Id="Bsfo" Guid="{D9A2BD2E-70C2-47DE-8B20-501A9D77A3CD}"> 
      <File Id="Bsfoimg" Name="1sfo.ico" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\1sfo.ico" /> 
     </Component> 
     <Component Id="Bsfob" Guid="{AC063280-4698-4605-B74C-471DEAD9D595}"> 
      <File Id="Bsfobimg" Name="1sfob.ico" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\1sfob.ico" /> 
     </Component> 
     <Component Id="Bufo" Guid="{0D840A42-3119-4283-9220-BCD722FA4D31}"> 
      <File Id="Bufoimg" Name="1ufo.ico" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\1ufo.ico" /> 
     </Component> 
     <Component Id="Bufob" Guid="{A8425CC9-5787-419D-8D37-8B6F16726C84}"> 
      <File Id="Bufobimg" Name="1ufob.ico" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\1ufob.ico" /> 
     </Component> 
     <Component Id="Csfo" Guid="{CBB6870F-3FBA-4ADC-B508-D865A8642C19}"> 
      <File Id="Csfoimg" Name="2sfo.ico" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\2sfo.ico" /> 
     </Component> 
     <Component Id="Csfob" Guid="{E0EBE823-11EB-4054-A544-1F9859D06A00}"> 
      <File Id="Csfobimg" Name="2sfob.ico" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\2sfob.ico" /> 
     </Component> 
     <Component Id="Cufo" Guid="{E1870A35-B398-4B4A-AC1C-0A701A5188F8}"> 
      <File Id="Cufoimg" Name="2ufo.ico" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\2ufo.ico" /> 
     </Component> 
     <Component Id="Cufob" Guid="{3A6EA0AE-38C0-496C-B977-3342F3C6D8B8}"> 
      <File Id="Cufobimg" Name="2ufob.ico" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\2ufob.ico" /> 
     </Component> 
     <Component Id="Dsfo" Guid="{2D575CA7-96DA-40A1-B1EC-173F455E47C4}"> 
      <File Id="Dsfoimg" Name="3sfo.ico" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\3sfo.ico" /> 
     </Component> 
     <Component Id="Dsfob" Guid="{C08977BB-8FF7-459F-B3B3-8A9E75152EF5}"> 
      <File Id="Dsfobimg" Name="3sfob.ico" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\3sfob.ico" /> 
     </Component> 
     <Component Id="Dufo" Guid="{552B1B41-247D-490B-9433-B642CAD6A70A}"> 
      <File Id="Dufoimg" Name="3ufo.ico" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\3ufo.ico" /> 
     </Component> 
     <Component Id="Dufob" Guid="{3140C586-45C8-4496-BADD-3F55D9F2B751}"> 
      <File Id="Dufobimg" Name="3ufob.ico" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\3ufob.ico" /> 
     </Component> 
     <Component Id="Esfo" Guid="{311F89D5-5E53-4B45-87F7-B521ACC6D7C1}"> 
      <File Id="Esfoimg" Name="4sfo.ico" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\4sfo.ico" /> 
     </Component> 
     <Component Id="Esfob" Guid="{E9239C1D-3F5A-497B-92D4-0830E739A5E9}"> 
      <File Id="Esfobimg" Name="4sfob.ico" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\4sfob.ico" /> 
     </Component> 
     <Component Id="Eufo" Guid="{8A057476-D9B3-4033-9906-567377D97304}"> 
      <File Id="Eufoimg" Name="4ufo.ico" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\4ufo.ico" /> 
     </Component> 
     <Component Id="Eufob" Guid="{8CE17A52-19B1-4FB6-9D12-0B231E3DDE4D}"> 
      <File Id="Eufobimg" Name="4ufob.ico" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\4ufob.ico" /> 
     </Component> 
     <Component Id="Fsfo" Guid="{D0433C83-BCC5-41EB-8015-9D76E4457448}"> 
      <File Id="Fsfoimg" Name="5sfo.ico" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\5sfo.ico" /> 
     </Component> 
     <Component Id="Fsfob" Guid="{C65BD8E6-C9F1-4A75-9A23-3A6DB35B4BFC}"> 
      <File Id="Fsfobimg" Name="5sfob.ico" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\5sfob.ico" /> 
     </Component> 
     <Component Id="Fufo" Guid="{4F9D5939-7011-4D99-A65B-3F0A2130622B}"> 
      <File Id="Fufoimg" Name="5ufo.ico" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\5ufo.ico" /> 
     </Component> 
     <Component Id="Fufob" Guid="{90D7B520-4A37-42AC-AB62-F5485A89FCC9}"> 
      <File Id="Fufobimg" Name="5ufob.ico" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\5ufob.ico" /> 
     </Component> 
     <Component Id="Ari_WWU" Guid="{086B969B-BAA2-4DFA-B699-F56FF885AB26}"> 
      <File Id="Ari_WWUimg" Name="Ari_WWU.ico" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\Ari_WWU.ico" /> 
     </Component> 
     <Component Id="auto" Guid="{9625F82B-B206-40E6-9310-8D46563E20C6}"> 
      <File Id="auto" Name="auto.png" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\auto.png" /> 
     </Component> 
     <Component Id="info" Guid="{DDCBB410-77DD-49C9-9372-98DD2747121E}"> 
      <File Id="infoimg" Name="info.png" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\info.png" /> 
     </Component> 
     <Component Id="manual" Guid="{4F8768A8-E44C-4781-9680-95CAC631CFB7}"> 
      <File Id="manualimg" Name="manual.png" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\manual.png" /> 
     </Component> 
     <Component Id="off" Guid="{702551D4-34DD-4B1B-B4F6-614DEFA4542A}"> 
      <File Id="offimg" Name="off.png" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\off.png" /> 
     </Component> 
     <Component Id="on" Guid="{7682A68D-712B-4F70-9EE2-FB4F0E04947D}"> 
      <File Id="onimg" Name="on.png" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\on.png" /> 
     </Component> 
     <Component Id="refresh" Guid="{9815CA13-659C-466D-B759-5EF557069D1B}"> 
      <File Id="refreshimg" Name="refresh.png" KeyPath="yes" Source="$(var.WWU_UI.TargetDir)image\refresh.png" /> 
     </Component>   
    </ComponentGroup> 
</Fragment> 

    <Fragment> 
     <Icon Id="WWU_UI.exe" SourceFile="$(var.WWU_UI.TargetDir)WWU_UI.exe"/> 
    </Fragment> 
</Wix> 

risposta

21

Si dovrebbe nido <Directory Id="ImageFolder"> sotto <Directory Id="INSTALLFOLDER">, in questo modo:

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="ProgramFilesFolder"> 
    <Directory Id="INSTALLFOLDER" Name="WWU"> 
     <Directory Id="ImageFolder" Name="image"/> 
    </Directory> 
    </Directory> 
    <Directory Id="ProgramMenuFolder" Name="Programs"> 
    <Directory Id="ProgramMenuDir" Name="WWU 1.0" /> 
    </Directory> 
    <Directory Id="DesktopFolder" Name="Desktop" /> 
</Directory> 

Si noti anche che se non c'è nessun componente in quella cartella, non verrà creato la directory vuota. Affinché ciò accada, dovrai creare un componente con l'elemento <CreateFolder> al suo interno.

+0

Come il 'CreateFolder' funziona? –

+0

1/2 una risposta. Come si fa il bit ? – AndyUK

2

Questo è quello che fai.

  1. Annidare la sottocartella sotto INSTALLFOLDER come indicato da Yan.
  2. creare il componente funzioni con il bit CreateFolder all'interno del codice

Esempio:

<Fragment> 
    <Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="ProgramFilesFolder"> 
      <Directory Id="INSTALLFOLDER" Name="WixInstallerExample" > 
       <Directory Id="test" Name="AnotherDirectory"> 
        <Component Id="test" Guid="e29f1a9e-3ede-40d6-aba0-bfe451002ee3" 
      SharedDllRefCount="no" KeyPath="no" NeverOverwrite="no" Permanent="no" Transitive="no" Win64="no" Location="either"> 
        <CreateFolder/> 
        </Component> 
       </Directory>    
      </Directory> 
     </Directory> 
    </Directory> 

    <Feature Id="test" Title="testfolder" Level="1"> 
     <ComponentRef Id="test"/> 
    </Feature> 
</Fragment> 
Problemi correlati