This GitHub Issue has been closed, promoting HaloSPV3/SPV3-Loader#54 to the the top-level issue.
[ ] HaloSPV3/HXE#217
[ ] HaloSPV3/SPV3-Loader#54
ROAD PLAN
This can go one of two ways...
STOPGAP
Platform-dependent code paths will be determined at runtime. This implies the following:
Check the value of System.Environment.OSVersion.Platform to determine which OS we're running on. In most cases, we'll see either Win32NT or Unix. All possible values.
MS Docs Example:
```cs
// This example demonstrates the PlatformID enumeration.
using System;
class Sample
{
public static void Main()
{
string msg1 = "This is a Windows operating system.";
string msg2 = "This is a Unix operating system.";
string msg3 = "ERROR: This platform identifier is invalid.";
// Assume this example is run on a Windows operating system.
OperatingSystem os = Environment.OSVersion;
PlatformID pid = os.Platform;
switch (pid)
{
case PlatformID.Win32NT:
case PlatformID.Win32S:
case PlatformID.Win32Windows:
case PlatformID.WinCE:
Console.WriteLine(msg1);
break;
case PlatformID.Unix:
Console.WriteLine(msg2);
break;
default:
Console.WriteLine(msg3);
break;
}
}
}
/*
This example produces the following results:
This is a Windows operating system.
*/
```
REWORK
Compile apps as native Linux apps.
Proton and WINE settings would be automated (or informed to the user) for convenience.
WPF and WinForms would be replaced by UNO, .NET 6's MAUI, or another GUI framework to assist in maintaining our WPF-reliant, MahApps.Metro-powered GUI.
All Windows Registry interaction would need to be disabled entirely or adapted to work with Proton and WINE. The Windows Registry is required to determine if Retail or Custom Edition was installed legally. How does Proton and WINE handle that?
This GitHub Issue has been closed, promoting HaloSPV3/SPV3-Loader#54 to the the top-level issue.
ROAD PLAN
This can go one of two ways...
STOPGAP
Platform-dependent code paths will be determined at runtime. This implies the following:
System.Environment.OSVersion.Platform
to determine which OS we're running on. In most cases, we'll see eitherWin32NT
orUnix
. All possible values.MS Docs Example:
```cs // This example demonstrates the PlatformID enumeration. using System; class Sample { public static void Main() { string msg1 = "This is a Windows operating system."; string msg2 = "This is a Unix operating system."; string msg3 = "ERROR: This platform identifier is invalid."; // Assume this example is run on a Windows operating system. OperatingSystem os = Environment.OSVersion; PlatformID pid = os.Platform; switch (pid) { case PlatformID.Win32NT: case PlatformID.Win32S: case PlatformID.Win32Windows: case PlatformID.WinCE: Console.WriteLine(msg1); break; case PlatformID.Unix: Console.WriteLine(msg2); break; default: Console.WriteLine(msg3); break; } } } /* This example produces the following results: This is a Windows operating system. */ ```REWORK