cargo-wix icon indicating copy to clipboard operation
cargo-wix copied to clipboard

Call `cargo wix sign` in workspace

Open chaynabors opened this issue 1 year ago • 1 comments

Me and my team are using cargo-wix to bundle multiple binaries for Windows. One of the requirements for distribution is that we sign our installer. Since our project exists in a workspace and bundles multiple binaries in the workspace, we build all of our binaries in release mode and run cargo-wix with --no-build enabled and pass -p to it to build everything from a single wix file in the primary crate. This mostly works great!

There doesn't appear to be a way to do the same thing for cargo wix sign. When ran from a workspace it asks to be passed a specific package, but -p doesn't work in this case:

image

The desired behavior for us is for cargo-wix to know which package to sign without passing the path to the msi, and it currently appears that there's no way to run cargo wix sign from a workspace despite the flags I enable or the paths I set. Perhaps I'm missing something?

Thanks in advance

chaynabors avatar Jul 28 '22 17:07 chaynabors

@chaynabors Thank you for your interest and usage of this cargo subcommand.

You are not missing anything. There is no -p option or support for the cargo wix sign sub-sub-command. The -p option for the default subcommand, cargo wix, is a relatively new feature and "first class" support for workspaces throughout the entire utility/project is a long overdue and severely lacking feature. Additionally, the cargo wix sign is a minimally supported feature that I threw in a while back and it has not received as much attention as other parts of the project. Signing uses a completely separate application from the WiX Toolset. So, I am not surprised you are experiencing issues at the moment with the signing feature, but I am sorry.

I don't have an excellent workaround other than possibly using a xtask and the -i option that is implemented for the cargo wix sign command to define the paths to each of the installers or move into the directories for each members of the workspace and sign from the members "root" path, where the Cargo.toml file is defined and is not a workspace manifest.

I would welcome and accept a PR that adds the -p option to achieve your ideal behavior, but I cannot guarantee a time when I would have a chance to implement it myself.

volks73 avatar Jul 28 '22 22:07 volks73