2012-06-02 7 views

ответ

52

Определите папку, как это:

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

Важной частью здесь является CommonAppDataFolder Id, который известен установщиком Windows. Полный список известных системных папок можно найти в Windows Installer Property Reference.

Если вы устанавливаете файлы в эту папку, они будут созданы неявно. Если нет, то вы можете заставить его быть создан путем установки компонента, как это:

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

я получаю эту ошибку при использовании его: 'ошибка CNDL0205: Директория с идентификатором «CommonAppDataFolder» не является допустимым корневым каталогом. '(плюс немного больше о том, что для каждого продукта имеется только один корневой каталог). Что я делаю не так? – noelicus

+0

@noelicus: в установщике Windows исходный каталог верхнего уровня всегда должен быть TARGETDIR. Я уточню свой ответ, чтобы прояснить это. –

+0

@WimCoenen Возможно ли копировать папку/files1..to..files5 во время установки установщика wix. – Royal

11

Под <Product> вы можете ввести:

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

И ссылки на компонент CreateProgramDataZZZ в вашем feature.

Она также может быть полезно установить права доступа на каталог, например так:

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

(вместо <CreateFolder />)

+0

у кого-нибудь есть идея создать папку и переместить файлы в одну папку? – Sudhakar

+0

использует WIX_ACCOUNT_USERS на User =, так как учетная запись будет изменяться на других языках. – LeoPucciBr

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