0

I have a Windows application which is built using MSVC and packaged as an .MSI file using WiX. The whole build is managed by cmake and WiX is invoked using the CPackWIX module.

I am now trying to extend the build environment to also build an .APPX package. I am following the official documentation by FireGiant.

After installing the WiX Expansion Pack, I have added the extension FgAppxExtension.wixext by appending it to the variable CPACK_WIX_EXTENSIONS like so:

SET(CPACK_WIX_EXTENSIONS WixUtilExtension FgAppxExtension.wixext)

I have then edited the .wxs source code as indicated here.

The build runs without any errors but creates no .APPX package. It only creates the usual .MSI package. In the wix.log file I see the line:

"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"

for the .MSI file, but no line for the .APPX package.

The documentation says that after adding a reference to FgAppxExtension.wixext

... the build process will attempt to create AppX packages.

but this does not happen.

Note that adding a wrong extension in the cmake file will result in a build error.

Changing the .wxs source code without adding the extension will also result in an error:

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

So I think the FgAppxExtension.wixext extension is loaded correctly, yet no .APPX package is built.

Do you have any hints?

giorgio-b
  • 113
  • 7

1 Answers1

1

Loading the FgAppxExtension.wixext extension isn't enough to build the .appx package while building the .msi package. FgAppxExtension does that using MSBuild, which isn't in play when using CMake.

When you're not using MSBuild, you can invoke the FireGiant.Appx.exe tool after Light.exe has produced the .msi and .wixpdb files.

Bob Arnson
  • 21,377
  • 2
  • 40
  • 47