Winetricks / winetricks

Winetricks is an easy way to work around problems in Wine
GNU Lesser General Public License v2.1
2.8k stars 403 forks source link

Verb for PresentationNative #1535

Open mirh opened 4 years ago

mirh commented 4 years ago

When coupled with wine-mono 5+. See instructions here.

Saancreed commented 4 years ago

By the way, it might be worth considering using binaries from release versions of .NET Core 3.1 LTS and not previews of .NET Core 3.0, which is EOL for over a month now. One downside however would be requirement to download larger runtime packages, as I was unable to find only native binaries packaged separately.

The newest version (3.1.3) can be found here for x64 and here for x86. Accessing future versions shouldn't be too hard as well; I suppose a simple s/3.1.3/$version/g for each link will do.

mirh commented 4 years ago

Ok so.. Wine-mono 5.1 (included in wine 5.11) ships it already. Problem is, it lacks the PresentationNative dll. Which should be available somewhere. So I think that should be the new aim.

austin987 commented 2 years ago

@mirh can you show an example application that needs this?

mirh commented 2 years ago

I would guess a lot of those using .NET/WPF? Esme seemed saddened here not to be able to pull it off. I don't really have much specific rationale myself then.. when some program crashes on start, it's hard to tell who's at fault.

austin987 commented 2 years ago

I tried this with a couple .Net applications, DayZ Launcher (https://dayzlauncher.com/) and ME3 Legendary Explorer (https://github.com/ME3Tweaks/LegendaryExplorer). In both cases, with wine-7.6 + wine-mono, it crashes with:

Unhandled Exception:
System.Runtime.Remoting.RemotingException: Channel {1E299AE2-74C8-4CD8-6B17-A86E0ED3C4D2}austin:SingeInstanceIPCChannel is not securable while ensureSecurity is specified as true
  at System.Runtime.Remoting.Channels.ChannelServices.RegisterChannel (System.Runtime.Remoting.Channels.IChannel chnl, System.Boolean ensureSecurity) [0x0002a] in <e70d6e9587d64cb3abb4b3f99bbf5a0d>:0 
  at LauncherCommon.Util.SingleInstance`1[TApplication].CreateRemoteService (System.String channelName) [0x00045] in <8a80a2158b2441738cb99e4d333512c4>:0 
  at LauncherCommon.Util.SingleInstance`1[TApplication].InitializeAsFirstInstance (System.String uniqueName) [0x00039] in <8a80a2158b2441738cb99e4d333512c4>:0 
  at DZLauncher.App.Main (System.String[] args) [0x00000] in <072914a088794593bf9ce19027d413fb>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.Runtime.Remoting.RemotingException: Channel {1E299AE2-74C8-4CD8-6B17-A86E0ED3C4D2}austin:SingeInstanceIPCChannel is not securable while ensureSecurity is specified as true
  at System.Runtime.Remoting.Channels.ChannelServices.RegisterChannel (System.Runtime.Remoting.Channels.IChannel chnl, System.Boolean ensureSecurity) [0x0002a] in <e70d6e9587d64cb3abb4b3f99bbf5a0d>:0 
  at LauncherCommon.Util.SingleInstance`1[TApplication].CreateRemoteService (System.String channelName) [0x00045] in <8a80a2158b2441738cb99e4d333512c4>:0 
  at LauncherCommon.Util.SingleInstance`1[TApplication].InitializeAsFirstInstance (System.String uniqueName) [0x00039] in <8a80a2158b2441738cb99e4d333512c4>:0 

With https://github.com/austin987/winetricks/pull/new/issue-1535-wpf-presentation-framework, which adds native PresentationNative_cor3.dll, wpfgfx_cor3.dll, and D3DCompiler_47_cor3.dll from the windows desktop runtime, there is no difference, I get the same crash.

Unless someone can show an application that is improved by this, I don't see any reason to merge it. I'll leave this bug open for a while in case someone wants to try/investigate.

mirh commented 2 years ago

Uh, damn. This was really really disappointing. Thanks for taking the bother that I could not. Maybe @madewokherd can chime in.

EDIT: https://github.com/madewokherd/wine-mono/issues/64 I guess you were very unlucky into hitting some other bug. Maybe older versions of ME3explorer could give you more luck?

madewokherd commented 2 years ago

A lot of PresentationNative's functionality has since been replaced, either in a replacement for the dll or on the managed side in PresentationCore, though not all of it.

FWIW it should be relatively obvious when this is a problem, and it doesn't seem to come up very often.