Как изменить каталог в файле wxs, куда будут установлены все dll и другие файлы?

Я новичок в создании проекта установки с использованием файла .wxs в проекте .NET. Я знал, что по умолчанию, когда вы запускаете файл MSI, он создает папку с этим проектом и его справочными файлами (dll, exe и т. Д.) В C:\Program Files (x86). Мой вопрос: могу ли я изменить это местоположение в моем файле .wxs на другое с помощью XML.


person Alex    schedule 21.11.2018    source источник


Ответы (1)


ConfigurableDirectory: вы можете использовать атрибут ConfigurableDirectory файла Feature Element, чтобы установить настраиваемый каталог функций. См. страницу ниже в разделе снимков экрана здесь: Как назначить значение пути к каталогу в WIX?.

Только макет:

Примечание. Я основываюсь на стандартном наборе диалоговых окон WiX Mondo. Чтобы подключить диалоговые окна Mondo, см. этот ответ. По сути, добавьте ссылку на WixUIExtension.dll и вставьте элемент <UIRef Id="WixUI_Mondo" />. Это скомпилирует диалоговое окно WiX по умолчанию в ваш MSI.

<Feature Id="MyFeature" Title="MyFeature" Level="1" ConfigurableDirectory="INSTALLFOLDER"></Feature>

<..>

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="ProgramFilesFolder">
    <Directory Id="INSTALLFOLDER" Name="InstallDirConfigurableTesting">

Помнить свойство. Обратите внимание, что вы должны самостоятельно сохранить местоположение пользовательского каталога в реестре и прочитать его для основных обновлений, иначе весь ваш продукт будет «перемещен» во время обновлений (я знаю , это странно). Насколько мне известно, это сохранение не происходит автоматически магическим образом. Вы можете сохранить свойство и прочитать его обратно, используя «Шаблон запоминания», как описано создателем WiX и благотворительностью Робом Меншингом здесь: Шаблон "Запомнить свойство" набора инструментов WiX.

Совет по реализации. Тестирование обратного чтения свойства каталога для основных сценариев обновления может быть немного затруднительным. Если вы создаете тестовый проект в Visual Studio с помощью Votive, вы можете использовать трюк, чтобы просто скомпилировать версию 1 вашего MSI (теперь добавьте к файлу MSI в выходной папке сборки суффикс _Version1.0.0.msi или аналогичный), а затем поднимите одну из первых трех цифр свойства номера версии и создайте обновленную версию (суффикс с _Version2.0.0.msi или аналогичный). Затем вы устанавливаете последовательно, выбирая пользовательский каталог установки, и проверяете, правильно ли ваша вторая установка определяет измененный путь. Просто используйте мокап или тестовый проект с одним компонентом, чтобы все заработало, иначе вы можете сойти с ума, если вам придется компилировать всю настройку. Затем просто вставьте готовую разметку в основной проект. Очевидно, да - просто упомянул.


Некоторые дополнительные ссылки:

person Stein Åsmul    schedule 21.11.2018