Использование расширения FireGiant Appx с cmake - PullRequest
0 голосов
/ 05 июня 2018

У меня есть приложение для Windows, созданное с использованием MSVC и упакованное в файл .MSI с использованием WiX.Вся сборка управляется cmake, а WiX вызывается с помощью модуля CPackWIX.

Сейчас я пытаюсь расширить среду сборки, чтобы также собрать пакет .APPX.Я следую официальной документации от FireGiant.

После установки WiX Expansion Pack я добавил расширение FgAppxExtension.wixext, добавив его в переменную CPACK_WIX_EXTENSIONS следующим образом:

SET(CPACK_WIX_EXTENSIONS WixUtilExtension FgAppxExtension.wixext)

Затем я отредактировал исходный код .wxs, как указано здесь .

Сборка выполняется без ошибок, но не создает пакет .APPX.Он создает только обычный пакет .MSI.В файле wix.log я вижу строку:

"C:/Program Files (x86)/WiX Toolset v3.11/bin/light.exe" -nologo -out "F:/dev/MyApp-build/_CPack_Packages/win32/WIX/MyApp-1.15.0+115-default-eb4abec2e9d2+.msi" -ext "FgAppxExtension.wixext" -ext "WixUIExtension" -ext "WixUtilExtension" -cultures:de-DE;en-US "-loc" "C:/dev/MyApp/resources/packaging/win/WIX.Texts.de-DE.wxl" "-loc" "C:/dev/MyApp/resources/packaging/win/WIX.Texts.en-US.wxl"  "F:/dev/MyApp-build/_CPack_Packages/win32/WIX/directories.wixobj" "F:/dev/MyApp-build/_CPack_Packages/win32/WIX/files.wixobj" "F:/dev/AusweisApp2-build/_CPack_Packages/win32/WIX/features.wixobj" "F:/dev/MyApp-build/_CPack_Packages/win32/WIX/main.wixobj"

для файла .MSI, но нет строки для пакета .APPX.

В документации сказано, что после добавленияссылка на FgAppxExtension.wixext

... процесс сборки попытается создать пакеты AppX.

, но этого не происходит.

Обратите внимание, чтодобавление неверного расширения в файл cmake приведет к ошибке сборки.

Изменение исходного кода .wxs без добавления расширения также приведет к ошибке:

The Product element contains an unhandled extension element 'fga:Appx'.

Поэтому я думаю, что расширение FgAppxExtension.wixext загружено правильно, но пакет .APPX не собран.

У вас есть какие-нибудь подсказки?

1 Ответ

0 голосов
/ 05 июня 2018

Загрузка расширения FgAppxExtension.wixext недостаточно для сборки пакета .appx при сборке пакета .msi.FgAppxExtension делает это с помощью MSBuild, который не используется при использовании CMake.

Если вы не используете MSBuild, вы можете вызвать инструмент FireGiant.Appx.exe после того, как Light.exe произвело MSI и .wixpdb.файлы.

...