Skip to content

Create build.yml - Make a self contained .exe so users don't have to …#43

Closed
TheRealDuckers wants to merge 2 commits into
space928:mainfrom
TheRealDuckers:patch-2
Closed

Create build.yml - Make a self contained .exe so users don't have to …#43
TheRealDuckers wants to merge 2 commits into
space928:mainfrom
TheRealDuckers:patch-2

Conversation

@TheRealDuckers
Copy link
Copy Markdown

…install .net

Make a self contained .exe so users don't have to install .net to run QPlayer.

Great app, thanks for making!

…install .net

Make a self contained .exe so users don't have to install .net to run QPlayer.

Great app, thanks for making!
@TheRealDuckers
Copy link
Copy Markdown
Author

Tested: Run, go to "Build Self Contained App" in workflows tab. Run the workflow, then open and go to Build Artifacts. Download them (should download a zip with the .exe in it)

@space928
Copy link
Copy Markdown
Owner

Hi,
Thanks for the PR, I originally chose not to provide a self-contained build as including the entire dotnet runtime in each build as it made the download unnecessarily big (like 100s of MB for a 2MB application). Obviously though, I understand that the additional step of having to download the dotnet runtime for people that don't already have it may be confusing; and the eventual plan is to have the build system make an NSIS (or similar) installer, which could install the dotnet runtime on-demand if needed. So for now, I think I'll stick with that plan ;-)

@TheRealDuckers
Copy link
Copy Markdown
Author

Hi,
I completley agree, however I am just thinking of dodgy IT here (school laptops mainly) where .net won't install properly. It would be great to have dedicated installer though, this was really just a temporary solution. Nice domain choice 😀.

(Also on a side note, would there be a way to make saved shows on QPlayer open-able by this? ?

@TheRealDuckers
Copy link
Copy Markdown
Author

See what you mean though - the complied version comes in at around 67MB...

@space928
Copy link
Copy Markdown
Owner

space928 commented Apr 24, 2026

I had a quick look into adding a self-contained build to my existing build pipeline, but in my testing on my machine (albeit through WSL), I found that self contained builds built using Linux don't seem to work. QPlayer seems to crash while creating the WPF window, it looks to me like a WPF bug:

System.DllNotFoundException: Dll was not found.
   at MS.Win32.Penimc.UnsafeNativeMethods.CreateResetEvent(IntPtr& handle)

Hard to say how easy it would be to fix (or if it's even possible). It could prooobbaaaabbbly be worked around by running the pipeline on windows, but that's like way slower. Anyway, it's all a moot point if I'm planning making a proper installer eventually anyway; I'll give it some more thought later.

With regards to your side note, I'm sure you could write a little converter to convert from QPlayer show files to WebCue show files (they're both JSON after all!), heck you could probably even do it in a QPlayer plugin if you wanted. (the QPlayer plugin interface provides an OnSave(string path) method custom plugins can implement).

Edit: Turns out I was building it wrong, I might be able to do a self contained build after all...

@TheRealDuckers
Copy link
Copy Markdown
Author

I could try on windows...

@space928
Copy link
Copy Markdown
Owner

This has now been implemented in #45, hope this helps!

@space928 space928 closed this Apr 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants