Установщик WiX оставляет пустые папки для пользовательских действий

Я создал проект установщика WiX и проект CustomAction. Я успешно добавил MyCustomAction в сценарий установки, и он работает как надо.

Однако установщик оставляет пустые папки в [INSTALLFOLDER] при каждом запуске установщика. Они называются MyCustomAction.CA.dll-, MyCustomAction.CA.dll-0, MyCustomAction.CA.dll-1 и т. Д. Даже деинсталлятор не удалит их, поэтому количество пустых папок становится больше.

Есть ли способ предотвратить создание папки? Я пробовал разные значения Execute (фиксация, отложенный), но они, похоже, не имеют никакого значения.

MyCustomAction определяется следующим образом:

<CustomAction Id="MyCustomAction"
              Return="check"
              Execute="commit"
              FileKey="MyCustomAction.CA.dll"
              DllEntry="MyCustomAction" />

<InstallExecuteSequence>
  <Custom Action="MyCustomAction" Before="InstallFinalize">NOT Installed</Custom>
</InstallExecuteSequence>

person kor_    schedule 30.04.2015    source источник
comment
Поделитесь структурой каталогов и укажите местоположение проекта и место установки.   -  person LeoN    schedule 30.04.2015


Ответы (2)


Я нашел решение проблемы: я включил MyCustomAction.CA.dll в установочные файлы моего продукта, а не в его собственный фрагмент. Это привело к тому, что dll скопировалась в папку установки.

Теперь, когда CustomActions определены в собственном фрагменте, временная папка не создается в INSTALLFOLDER.

person kor_    schedule 30.04.2015

вы добавили для них двоичную запись?

<Binary Id='FooBinary' SourceFile='foo.dll'/>

http://wixtoolset.org/documentation/manual/v3/wixdev/extensions/authoring_custom_actions.html

person tollgen    schedule 30.04.2015