eviabs/downtify-premium

Convert to dotnet 5 ?

nate-1 opened this issue · 3 comments

I was wondering if this program could be converted to dotnet 5, this would allow it to run on ubuntu, and all non-windows OS.

Feel free to close this issue if it's off topic.

Seems possible, guess it depends on the additional assemblies (ohLibSpotify, SpotifyWebApi,Taglib-sharp,yeti.mmedia and yeti.mp3) - As they couldn't be analyzed, sadly I haven't worked in .net or c# at all to be able to fix it myself.

I did however take a look as I knew there were tools to check portability.

Ran it through .Net Portability Analyzer and shows no specific issues.
ApiPortAnalysis.xlsx

I also ported it using upgrade-assistant (https://docs.microsoft.com/en-us/dotnet/core/porting/upgrade-assistant-overview) - After upgrading, it built without errors. It would of course require changes to make it work on Linux/Mac of which I do not have enough experience.

Analyzing it with upgrade assistant:

[13:39:32 INF] Loaded 5 extensions
[13:39:33 INF] Using MSBuild from C:\Program Files\dotnet\sdk\6.0.101
[13:39:33 INF] Using Visual Studio install from C:\Program Files\Microsoft Visual Studio\2022\Community [v17]
[13:39:35 INF] Recommending Windows TFM net6.0-windows because the project either has Windows-specific dependencies or builds to a WinExe
[13:39:36 INF] Reference to .NET Upgrade Assistant analyzer package (Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers, version 0.3.261602) needs to be added
[13:39:37 INF] Adding Microsoft.Windows.Compatibility 6.0.0
[13:39:37 INF] Running analyzers on Downtify
[13:39:38 INF] Identified 0 diagnostics in project Downtify
[13:39:38 WRN] HighDpiMode needs to set in Main() instead of app.config or app.manifest - Application.SetHighDpiMode(HighDpiMode.). It is recommended to use SystemAware as the HighDpiMode option for better results.

EDIT: I haven't yet tested the ported version as I'm currently running Downtify. Will check and update.

EDIT2: Conversion (at least using the upgrade-assistant) seems to have worked fine. Tested and no functionality changed. Remains to do whatever changes are required to make it run on Linux/OSX.

I'm thinking at least for Linux, building it as CLI only that takes input from a file with the list of URL/URI's would be neat, that way those of us who'd like to automate ripping on a headless server would be golden.

Hi, is there any update on this? Unfortunately spent quite a lot of time before I found out it's not possible to run on linux or mac :(

Sorry, not on my end. I possess neither actual knowledge nor time to learn how to do it :(