2012-06-02 18 views

Antwort

52

Definieren Sie den Ordner wie folgt aus:

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="CommonAppDataFolder"> 
     <Directory Id="TestFolder" Name="test"> 
      <Directory Id="ExampleFolder" Name="example" /> 
     </Directory> 
    </Directory> 
</Directory> 

Der wichtige Teil ist hier die CommonAppDataFolder Id, die vom Windows-Installer bekannt ist. Sie können die vollständige Liste der bekannten Systemordner in der Windows Installer Property Reference finden.

Wenn Sie Dateien in diesem Ordner installieren, wird diese implizit erstellt. Wenn nicht, können Sie es zwingen, durch die Installation einer Komponente wie folgt erstellt werden:

<Component Id="CreateTestFolder" Directory="ExampleFolder" Guid="PUT-RANDOM-GUID-HERE"> 
    <CreateFolder /> 
</Component> 
+0

ich diesen Fehler erhalten, wenn es mit: 'Fehler CNDL0205: Verzeichnis mit Id 'CommonAppDataFolder' ist kein gültiges Stammverzeichnis. '(plus ein bisschen mehr über nur ein einziges Wurzelverzeichnis pro Produkt). Was mache ich falsch? – noelicus

+0

@noelicus: Im Windows-Installationsprogramm muss das übergeordnete Verzeichnis der obersten Ebene immer TARGETDIR sein. Ich werde meine Antwort aktualisieren, um dies zu klären. –

+0

@WimCoenen Ist es möglich, Ordner/files1..to..files5 während der Installation von Wix Installer zu kopieren. – Royal

11

Unter <Product> Sie eingeben können:

<DirectoryRef Id="TARGETDIR"> 
     <Directory Id="CommonAppDataFolder"> 
     <Directory Id="CommonAppXXXX" Name="test"> 
      <Directory Id="CommonAppYYYY" Name="example"> 
      <Component Id="CreateProgramDataZZZ" Guid="ABC-ETC"> 
       <CreateFolder /> 
      </Component> 
      </Directory> 
     </Directory> 
     </Directory> 
    </DirectoryRef> 

Und verweisen auf die Komponente CreateProgramDataZZZ in Ihrem feature.

Es kann auch hilfreich sein, Berechtigungen festlegen auf das Verzeichnis wie folgt aus:

<CreateFolder> 
    <util:PermissionEx User="Users" GenericAll="yes" /> 
</CreateFolder> 

(anstelle von <CreateFolder />)

+0

hat jemand Idee Ordner erstellen und Dateien im selben Ordner verschieben? – Sudhakar

+0

Verwenden Sie WIX_ACCOUNT_USERS für Benutzer =, da sich das Konto in anderen Sprachen ändert. – LeoPucciBr

Verwandte Themen