.NET 10 - Blocked by Linux Support
- Minimal upgrade to test out .NET 10
- Upgrade CI to latest actions, bump node 14 to node 20 to match other R-II mod repo
- Does not update the Template
--
Windows tested ✔️
Linux - ❌ - unable to add new games - breaks on attempting to invoke the FileDialog
build Assets file 'D:\a\Reloaded-II\Reloaded-II\source\Reloaded.Mod.Installer.Cli\obj\project.assets.json' doesn't have a target for 'net9.0-windows'. Ensure that restore has run and that you have included 'net9.0-windows' in the TargetFrameworks for your project.
Just search 9.0 in all files. Maybe there's an override somewhere, like in build script.
Just search 9.0 in all files. Maybe there's an override somewhere, like in build script.
"Hmph too easy"
Oops, didn't check the ps1 scripts.
Holding off on this until .NET 10 is better supported in wine.
Linux exclusive error thrown on clicking the + button / "Add an application"
Exception:
Unable to cast object of type 'Ookii.Dialogs.Wpf.Interop.FileSaveDialogRCW' to type 'Ookii.Dialogs.Wpf.Interop.NativeFileSaveDialog'.
Stacktrace:
at Ookii.Dialogs.Wpf.VistaSaveFileDialog.CreateFileDialog()
at Ookii.Dialogs.Wpf.VistaFileDialog.RunFileDialog(IntPtr hwndOwner)
at Ookii.Dialogs.Wpf.VistaFileDialog.ShowDialog(IntPtr owner)
at Ookii.Dialogs.Wpf.VistaFileDialog.ShowDialog(Window owner)
at Ookii.Dialogs.Wpf.VistaFileDialog.ShowDialog()
at Reloaded.Mod.Launcher.Lib.Commands.Application.AddApplicationCommand.SelectEXEFile()
at Reloaded.Mod.Launcher.Lib.Commands.Application.AddApplicationCommand.ExecuteAsync(Object parameter)
at Reloaded.Mod.Launcher.Lib.Commands.Application.AddApplicationCommand.Execute(Object parameter)
at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__124_0(Object state)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Window.ShowHelper(Object booleanBox)
at System.Windows.Window.Show()
at System.Windows.Window.ShowDialog()
at Reloaded.Mod.Launcher.App.OnStartup(Object sender, StartupEventArgs e)
at System.Windows.Application.<.ctor>b__1_0(Object unused)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority priority, Delegate method, Object arg)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Application.RunDispatcher(Object ignore)
at System.Windows.Application.RunInternal(Window window)
at Reloaded.Mod.Launcher.App.Main()
Going to look into this cast, since Ookii dialogs library is deprecated and unlikely to fix this themselves.
Option two is removing Ookii dialogs completely I guess, and using the new native net 8.0+ versions instead. I don't think Ookii will be updating this, and I suspect wine won't consider it an issue.
You don't have filesystem access to the files (not even Explorer does), and open dialog will error on selection while selecting an encrypted Xbox Store exe.
Microsoft, WTF. lol
I'd be more concerned about subtle bugs elsewhere, which we don't quite know about yet.
After all, a runtime upgrade broke this, not Proton.
So something runtime related was/is amiss.
Created wine bug report https://bugs.winehq.org/show_bug.cgi?id=59041
Rebased. Will be using this build extensively on Windows. Wine has resolved the bug above in 11.0-rc Will still need to wait for Proton 11 to be common before merging this, but for testing on Windows its fine.