oleg-shilo / wixsharp

Framework for building a complete MSI or WiX source code by using script files written with C# syntax.
MIT License
1.12k stars 176 forks source link

[Question] Any possibility to create msix file for installation in Wix# ? #1623

Closed Torchok19081986 closed 2 months ago

Torchok19081986 commented 2 months ago

morning, i have to create msix install file for current win 11 and WTS 2019 and better. I found out , that i can use msix package tool for create msix after creating msi file with ui. Msix Package tool has also paramters in command line.

MakeAppx pack /d /p .msix SignTool sign /a /v .msix

Any possibility to use it in wix# event project.wixsourcesaved or generated ? thanks.

oleg-shilo commented 2 months ago

What is in the input dir? I assume there are quite a few makeappx sources. If so then WixSharp does not generate them and I am not sure it should. Unless these sources can be generated form the WixSharo project definition. But simply invoking makeappx.exe after the build is as simple as Process.Start

Torchok19081986 commented 2 months ago

Hiho oleg. Input dir is path to msi file, in my case generated msi file after project.buildmsi(). I tried it as process.Start, works, until it makeappx.exe want to sign outgoing msix package with cert with pfx file. Dont know if it my mistake or makeappx.exe has some bug. Need some time to investigate it. Last question here : there is no event or possiblity to get entry point as event or method/function if msi file was successfully created, right ? i see only few event in wix#.

oleg-shilo commented 2 months ago

Hm... the parameter /d <input directory> is a directory. It does not accept the msifile path. It complains:

MakeAppx : error: The content directory can't be a file.

The param needs to be a directory. The directory also needs to contain a manifest file. So it's not as simple as it seems

But I will have a look at it.

oleg-shilo commented 2 months ago

This is what I found:

An MSIX package cannot directly include or be based on an MSI file itself. MSIX is a modern packaging format designed to replace older formats like MSI. It requires that the contents of an application, including the executable and other resources, be directly packaged within the MSIX format.

Basically, you do not need to create MSI if you are going to build msix

Torchok19081986 commented 2 months ago

thanks again, @oleg-shilo. Means i can just add all my source exe after building to msix package tool. Another story msi package tool self, if i try to create msix file , app want to have msi file and .pfx or .cert file to set digital signature for signtool. i thought , command line do same. Close the issue. Basically understandable.