Skip to content

Conversation

@dreamsyntax
Copy link
Contributor

@dreamsyntax dreamsyntax commented Nov 14, 2025

  • 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
image

@dreamsyntax dreamsyntax marked this pull request as draft November 14, 2025 21:56
@dreamsyntax
Copy link
Contributor Author

image Build from artifacts seems to function as expected, but CI also reports an error which has me stumped. NET 9 isn't defined in R-II CLI csproj anywhere..

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.

@Sewer56
Copy link
Member

Sewer56 commented Nov 14, 2025

Just search 9.0 in all files. Maybe there's an override somewhere, like in build script.

@dreamsyntax
Copy link
Contributor Author

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.

@dreamsyntax dreamsyntax marked this pull request as ready for review November 14, 2025 22:23
@dreamsyntax dreamsyntax marked this pull request as draft November 15, 2025 01:05
@dreamsyntax dreamsyntax changed the title .NET 10 .NET 10 - Blocked by Linux Support Nov 15, 2025
@dreamsyntax
Copy link
Contributor Author

Holding off on this until .NET 10 is better supported in wine.

@dreamsyntax
Copy link
Contributor Author

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()

@dreamsyntax
Copy link
Contributor Author

Going to look into this cast, since Ookii dialogs library is deprecated and unlikely to fix this themselves.

Copy link
Member

@Sewer56 Sewer56 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You cannot use the Open dialog instead of Save. At least not for adding games. You'll break Xbox Store games on Windows.

[This is why the Save dialog is used here, actually]

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.

While Reloaded is capable of stripping it, if you can't select the game in the first place via the dialog, we're no ball.

I'd rather wait until it's fixed upstream in Wine/Proton instead. This subtly different behaviour could pop up elsewhere.

@dreamsyntax
Copy link
Contributor Author

dreamsyntax commented Nov 23, 2025

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

@Sewer56
Copy link
Member

Sewer56 commented Nov 23, 2025

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.

@dreamsyntax
Copy link
Contributor Author

Created wine bug report
https://bugs.winehq.org/show_bug.cgi?id=59041

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants