Yeah, it's confusing as it can make impression that it's more "Core" so more default. Story of
.NET is, that it started for Windows only, with
.NET Framework containing many Windows only specific stuff (
WinForms,
WPF, etc..). Thus,
.NET Framework comes in one package with Windows and targeting
.NET Framework means app being runnable easier on Windows, without installing prerequisites.
Just later, Microsoft realized that many parts of
.NET Framework can be easily platform agnostic. Items of importance were mainly network/server side stuff (domain where
Java was always undisputed king). Thus, they extracted it to
.NET Core and made run-times for Windows, OS X, Linux, etc.., so
.NET can expand beyond Windows platform. On bright side,
.NET Core apps can be easily ported to any platform where run-time exists, on downside,
.NET Core run-time is not the default part of Windows, can be downloaded from MS here:
https://dotnet.microsoft.com/download/dotnet-core/3.1.NET Core run-time installer for console only app is just around 25MB, so no big deal. Unless you find better solution, you can just ship it with your app. Or give instructions to user, if they'll have troubles running app.
To have the the best compatibility on Windows, I guess the best is to target
.NET Framework 4.5. As
.NET Framework 4.5 is part of Windows 8 and newer and there's no big difference between
.NET Framework 4.5 and newer versions. In your example,
.NET Framework 4.8 is packaged automatically only from Windows 10 1903 and newer. Users which don't update their Win10 regularly can be without
.NET Framework 4.8. See table here:
https://en.wikipedia.org/wiki/.NET_Framework_version_historyI'm 100% sure that it's possible to make console app also targeting
.NET Framework 4.5. I tried it in my Visual Studio 2017 and I have it there (New Project -> Visual C# -> Get Started -> Console App (there I was able to choose .NET Framework 4.5 as target). Maybe it depends on your VS installation. However, I can't help very much with music though as I don't know nothing about
WMPLib.
I'm using
XAudio from
DXTK library (it's C++, I have C#/C++ bridging in my app and rendering/sounds I have in C++, while all game logic I have in C#). Previously, I used
NAudio library for sounds and music. It's pure C#, you can ship DLL with your binaries. Maybe it can be of help to you. Check here:
https://github.com/naudio/NAudio