-
Notifications
You must be signed in to change notification settings - Fork 179
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature request: first-class support for treating sources as scripts, with wixsharp as a CLI interpreter #1697
Comments
I've found a better approach than environment variables:
For example: https://gist.github.com/fredemmott/1047871f102b411c9acf566499c48f84 |
this is exactly the reason I removed it: separating the build and run steps allows me to execute it with differing arguments without modifying the project every time. The post build task makes this approach incompatible with mandatory arguments. |
Most projects I see that build 1 component then use this to build a second do this by having multiple build targets with a dependency, rather than a post-build task; that approach would keep the “just build it to get msi” standard behavior, but add more flexibility |
Sorry for splitting my replies up; anyway, to expand on this: Most build systems work on the idea of producing a set of outputs from a set of inputs, and repeating this action when the set of inputs change - either when there are more inputs, or when an input has been modified. On this model, wixsharp has two steps:
With the usual templates, 'other inputs' are not defined as inputs in the build system - not even in msbuild - so the build can't reliably detect when the msi is still and needs rebuilding. Keeping the two steps separate allows using the definition of all inputs - the wixsharp .cs and the files that are actually going to be installed - from the project's primary build system to be used to compute the staleness and need to rebuild. |
I actually agree with your reasoning. It was what I implemented initially. Initially, WixSharp integration was done through As an alternative, I tried to encourage users to simply build the exe and then execute it. Exactly your two steps approach. Noone liked it, even though it is the easiest way to debug your build. So I gave up and implemented the simplest possible approach. |
It seems that while WixSharp is built on top of CS-Script, the primary intended way to operate it is via Visual Studio templates that build the full MSI.
While there are some notes about copying cscs.exe and the WixSharp DLLs, and a sample of building without visual studio, it seems like this is something you discourage at the moment
If you were to support something like this:
... that would be much easier to integrate with projects that use other build systems (e.g. cmake for portable C++, Cargo for rust), especially on disposable CI workers.
I'm able to meet my needs with the template and reading parameters from environment variables - this request would just have made integration much simpler.
The text was updated successfully, but these errors were encountered: