Monogame Cross Platform Project Fails to Run Debug, DirectX build does.

(TLDR: Not getting answers so this is just documenting my progress toward making some sort of proper support for multiple graphical api’s using Monogame’s template projects, and a launcher to detect which to run in case some other noob needs to know.)

Yesterday I made a clone project in visual studio for my game from the base Microsoft Windows Project to a Monogame Cross Platform Desktop Project. This was all done on my desktop. Both the the DirectX and OpenGL projects work fine on there. Today though between my classes at University I decided to test it out on my Thinkpad T420, so I got a copy via remote file transfer.

The directX debug build runs fine.

However trying to run the OpenGL debug build with the Any CPU option produces the Failed to create graphic device error, due the intergrated graphics drivers not supporting OpenGL 3.0.

So basically any hardware that does not support OpenGL 3.0 can’t use this build. Is there a way for me to to add support for older versions of OpenGL? Would that limit me from also supporting OpenGL 3 and providing its graphic benefits as features? Or should I just keep both the DirectX and OpenGL builds updated for the best compatibility in a single project compilation(If so whats the best way to do this)?

For example having a launcher detect the hardware support and run the proper binary. (OpenGL default, DirectX only for devices that do not support.)

Part 2:
I was able to figure out making a VS solution with both DX and GL project for the game, and just added a reference to the GL project. Still need to figure out how to detect which binary to run based on supported api by the system.

Part 3:
Learned about sharing various files across multiple projects. Able to make successful builds of the separate projects, however still can’t make a single build with multiple project binaries in it. I have the algorithm for handling their execution of each binary, but still need to figure out hardware API support detection.

P.S. Sorry for all these questions in one post, (TLDR: I’m new to software development) -
still new to Monogame and programming in general. I’m using it to learn C# and various subjects in programming/software design while also making a game as a hobby/possible venture. I’m trying to strive to do it design wise the best I can while sacrificing functional performance of the program for now, so I’ve been really strict on how I’ve been structuring all the overhead in Monogame and making sure the game can run on most potatoes (Non-Mobile Andriod/IOS/Mobile Ubuntu etc) and also be as configurable as possible for the user, as many games these days unfortunately do not provide such a scope for preference.

Do you have multisampling enabled?

That is a bug in 3.6, where it tries to force 32x aa by default and some computers can’t create a graphicsdevice then

I had this problem earlier with DirectX build, which is what got me to realize that I was using the non-cross platform Monogame project. That got me to switch the main project to OpenGL. However another problem arised when trying to run on specific hardware that does not support OpenGL 3.0, which is what I’m trying to accommodate for at least, by making sure the game can run on the DirectX API for such hardware.

The only problem now is for hardware that does not support OpenGL 3.0, to have an optional DirectX binary. Also for me to learn how to have a launch binary, that is able to decide what binary of the game to run based on hardware compatibility. (I realize how excessive that is but I just want to see how far I go with device support.