Re[6]: WiX: При uninstall не удаляет каталог прог. из-за orp
От: amihal  
Дата: 21.01.08 15:28
Оценка:
Здравствуйте!

A>> Аргумент в некотором смысле по делу, конечно. Но as is. Хотелось бы решить как-то изящнее (читай — правильно).

bnk> Ну а чего, лично я бы так и сделал наверное.
bnk> Все вроде в рамках Windows Installer, должно валидироваться. RemoveFolder — просто строчка в таблице, тоже вроде не криминал..

Решил попробовать — не работает. Удивился.

Вот фрагмент:

<Directory Id="ProgramFilesFolder" Name="PFiles">
  <Directory Id="CompanyDir" Name="$(var.COMPANY_DIR_SHORT)" LongName="$(var.COMPANY_DIR)">
    <Directory Id="INSTALLDIR" Name="$(var.PROG_DIR)">
      <Directory Id="DataDir" Name="DATA">
        <Directory Id="DataStorageDir" Name="FS" LongName="DataStorage">
          <Component Id="RemoveDataStorage" Guid="!GUID1!">
            <RemoveFile Id="DataStorageFiles" Name="*.*" On="uninstall" />
            <RemoveFolder Id="DataStorageDir" On="uninstall" />
          </Component>
        </Directory> <!-- ".\PROG\DATA\DataStorage" -->
        <Component Id="RemoveConfigs" Guid="!GUID2!">
          <RemoveFile Id="progcfg.bin" Name="progcfg.bin" On="uninstall" />
          <RemoveFile Id="progdata.bin" Name="progdata.bin" On="uninstall" />
          <RemoveFolder Id="DataDir" On="uninstall" />
          <RemoveFolder Id="INSTALLDIR" On="uninstall" />
          <RemoveFolder Id="CompanyDir" On="uninstall" />
        </Component>
      </Directory> <!-- ".\PROG\DATA" -->
[...]

Вот лог:

RemoveEnvironmentStrings: Name: Updating environment strings, Value: , Action 
Action ended 18:20:26: RemoveEnvironmentStrings. Return value 1.
MSI (s) (E0:14) [18:20:26:742]: Doing action: RemoveFiles
MSI (s) (E0:14) [18:20:26:742]: Note: 1: 2205 2:  3: ActionText 
Action 18:20:26: RemoveFiles. Removing files
Action start 18:20:26: RemoveFiles.
RemoveFiles: File: Removing files, Directory: 
MSI (s) (E0:14) [18:20:26:758]: Counted 4 foreign folders to be removed.
MSI (s) (E0:14) [18:20:26:758]: Removing child folder of C:\Program Files\CompanyName\PROG\DATA\ (child: C:\Program Files\CompanyName\PROG\DATA\DataStorage\)
MSI (s) (E0:14) [18:20:26:758]: Removing foreign folder: C:\Program Files\CompanyName\PROG\DATA\DataStorage\
MSI (s) (E0:14) [18:20:26:758]: Removing foreign folder: C:\Program Files\CompanyName\PROG\DATA\
MSI (s) (E0:14) [18:20:26:758]: Removing foreign folder: C:\Program Files\CompanyName\PROG\DATA\
MSI (s) (E0:14) [18:20:26:774]: Removing foreign folder: C:\Program Files\CompanyName\PROG\DATA\
Action ended 18:20:26: RemoveFiles. Return value 1.
MSI (s) (E0:14) [18:20:26:774]: Doing action: InstallFiles
MSI (s) (E0:14) [18:20:26:774]: Note: 1: 2205 2:  3: ActionText 
Action 18:20:26: InstallFiles. Copying new files
Action start 18:20:26: InstallFiles.

Результат: присутствуют пустые каталоги C:\Program Files\CompanyName\PROG\ (внутри ни файлов, ни подкаталогов нет).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.