Justin113D / TranslationEditor

A cross platform translation editor with text versioning and descriptions
GNU General Public License v3.0
0 stars 0 forks source link

[Request] What about self-contained or framework-dependent executables? #4

Open jusnim opened 1 day ago

jusnim commented 1 day ago

So, the application is meant for cross-plattform purposes. I really have no experience with .NET, but after a quick search, wouldn't it be better to publish a self-contained executable when compiling for each platform? Then you wouldn't need to install .NET packages. https://learn.microsoft.com/en-us/dotnet/core/deploying/#publish-self-contained

Alternatively you could provide a framework-dependent executable so that it can run on any platform, assuming .NET is installed https://learn.microsoft.com/en-us/dotnet/core/deploying/#publish-framework-dependent

If I've missed anything in the .NET infrastructure (or your project) that doesn't comply with this idea, please let me know! :)

Justin113D commented 1 day ago

My main concern with publishing a self contained executable is the filesize: Building the translation editor self dependent results in a 90 mb exe, while framework dependent is just 24.

And, unless i have missed something your are addressing, i am already publishing the app as a framework dependent executable for every system: https://github.com/Justin113D/TranslationEditor/releases/tag/0.0.1-alpha1

jusnim commented 1 day ago

It's interesting that the additional size is exactly 66 mb, because that seems to be the whole .NET runtime. image \ Nevertheless, it's probably an additional file that's nice to have to ensure the combability if someone has problems installing .NET packages, especially on UNIX-like systems. EDIT: would be more than one file, to be specific, for every platform an additional one. So maybe a little bit overkill \ And you are absolutely right that you're already publishing the app as a framework dependent executable. I had an oversight and actually meant the framework dependent binary, because the .dll seems to be truly cross-platform according to their documentation. https://learn.microsoft.com/en-us/dotnet/core/deploying/#publish-framework-dependent \ Again, it's just a good additional file that shouldn't cause extra maintenance. You're current approach is already more platform including than most programs, so that's fine.

Justin113D commented 20 hours ago

Yeah, that is what self dependent does: It includes the entire NET runtime. I can look into using trimming, but usually that doesn't work well with UI based applications, and given that this repository will publish 2 different apps, the translation editor and translation format editor, you'd already have 12 (or 14, with the binary included) files per release. Also releasing a self dependent version for every platform would bump this up to 26, which is, as you said, a bit overkill.

I can definitely release with a framework dependent binary though, but that aside, i'd prefer to stick with framework dependent executables to save on space.