Образец пустых каталогов Wix# не работает?

Я пытаюсь создать пустую папку с помощью установщика wix #.

Я нашел образец "Пустые каталоги" ( "src/WixSharp.Samples/Wix# Samples/Empty Directorys" ), в котором говорится, что:

При работе с необработанным Wix у вас не может быть пустых каталогов. Каждый каталог должен иметь либо компонент (например, файл), либо специальный элемент CreateFolder.

Wix# не имеет такого ограничения, поскольку он просто автоматически создает все необходимое синтаксическое оформление (вставляет элемент CreateFolder) в исходный файл Wix при обнаружении объявления пустого каталога.

Но когда я собираю и запускаю образец, я не получаю папки «Образцы» или «Документы» (пустые папки из образца).

Файл журнала содержит следующее:

Action 16:25:24: RemoveFiles. Removing files
Action start 16:25:24: RemoveFiles.
RemoveFiles: File: Removing files, Directory: 
MSI (s) (7C:F4) [16:25:24:926]: Counted 2 foreign folders to be removed.
MSI (s) (7C:F4) [16:25:24:926]: Removing foreign folder: C:\Program Files (x86)\My Company\My Product\Docs\Manual\
MSI (s) (7C:F4) [16:25:24:926]: Removing foreign folder: C:\Program Files (x86)\My Company\My Product\Samples\
Action ended 16:25:24: RemoveFiles. Return value 1.

Что значит «иностранный»? Что я делаю неправильно?

Используется набор инструментов WiX v3.10.1.


person mt_serg    schedule 04.12.2015    source источник
comment
У меня такая же проблема с WixSharp 1.0.30.0. У меня есть проект, в котором нужно создать папку с 5 подпапками. Создаются только 2 (потому что они содержат файлы).   -  person Dalstroem    schedule 11.12.2015
comment
У меня такая же проблема с последней версией WixSharp и Wix Toolset 3.10.1, но я не смог найти для нее ошибку: система отслеживания ошибок   -  person Exodus    schedule 01.02.2016


Ответы (1)


Вы не делаете ничего плохого, проблема была в WixSharp и исправлена ​​в версии 1.0.32.1.

Длинный ответ вы можете посмотреть на странице WixSharp CodePlex, но краткий будет (перефразируя автора WixSharp, Олега):

MSI «на самом деле» не поддерживает установку пустых папок. Обходной путь — вставить пустой компонент с элементом CreateFolder. Но затем, чтобы удалить папку при удалении, нам также нужно вставить элемент RemoveFolder в пустой компонент. Нам также необходимо принять во внимание родительские папки пустой папки и применить это рекурсивно ко всем из них. На данный момент эти обходные пути не приводят к нежелательным последствиям.

Wix# добавлял эти обходные пути, и в конечном итоге они начали конфликтовать друг с другом, что привело к нарушению работы образца и функциональности EmptyDirectories.

person mbinic    schedule 12.02.2016