https://bugs.winehq.org/show_bug.cgi?id=39059
Bug ID: 39059 Summary: NWN2ToolsetLauncher.exe dotnet20 Application crashes with System.TypeLoadException Product: Wine Version: 1.6.2 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: kernel32 Assignee: wine-bugs@winehq.org Reporter: b.barwich@hotmail.com Distribution: ---
Created attachment 52029 --> https://bugs.winehq.org/attachment.cgi?id=52029 NWN2ToolsetLauncher.exe Crash Report
The tool NWN2ToolsetLauncher.exe is recognized as dotnet20 Application. I managed to install the .NET Framework successfully with "winetricks dotnet20".
Now that I launched the application I see the first window and get right away that exception.
When I try to run it with mono it gives me a mscvsm80.dll is missing exception.
My system is: $ wine --version wine-1.6.2
On a Debian 8.0 System $ uname -a Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt9-3~deb8u1 (2015-04-24) x86_64 GNU/Linux
https://bugs.winehq.org/show_bug.cgi?id=39059
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|kernel32 |-unknown
https://bugs.winehq.org/show_bug.cgi?id=39059
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |dotnet Status|UNCONFIRMED |RESOLVED CC| |focht@gmx.net Resolution|--- |INVALID Summary|NWN2ToolsetLauncher.exe |Neverwinter Nights 2 |dotnet20 Application |Toolset |crashes with |'NWN2ToolsetLauncher.exe' |System.TypeLoadException |(.NET 2.0 app) crashes with | |System.TypeLoadException | |(managed DirectX runtime | |not installed)
--- Comment #1 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming.
The failure is expected since 'NWN2Toolset.dll' .NET assembly depends on managed DirectX.
--- snip --- fixme:advapi:ReportEventW (0xcafe4242,0x0001,0x0000,0x00001388,(nil),0x000b,0x00000106,0x3009a1b4,0x6ec5d4): stub err:eventlog:ReportEventW L"clr20r3" err:eventlog:ReportEventW L"nwn2toolsetlauncher.exe" err:eventlog:ReportEventW L"1.0.23.1765" err:eventlog:ReportEventW L"4a89fba1" err:eventlog:ReportEventW L"nwn2toolset" err:eventlog:ReportEventW L"1.0.1765.0" err:eventlog:ReportEventW L"4a89fc8c" err:eventlog:ReportEventW L"20d" err:eventlog:ReportEventW L"1b" err:eventlog:ReportEventW L"system.typeloadexception" err:eventlog:ReportEventW L"NIL" ... Unhandled Exception: System.TypeLoadException: Could not load type 'NWN2Toolset.NWN2.NetDisplay.NWN2NetDisplayManager' from assembly 'NWN2Toolset, Version=1.0.1765.0, Culture=neutral, PublicKeyToken=6bb96f3d82daa243'. at NWN2Toolset.NWN2ToolsetMainForm.Initialize() at NWN2Toolset.NWN2ToolsetMainForm.StartupWindow() at NWN2ToolsetLauncher2.LauncherStub.Main() at main(String[] args) wine: Unhandled exception 0xe0434f4d in thread 9 at address 0x7b845d3d (thread 0009), starting debugger... --- snip ---
Dumping the culprit with ILSpy:
--- snip --- // Z:\home\focht.wine\drive_c\GOG Games\Neverwinter Nights 2 Complete\NWN2Toolset.dll // NWN2Toolset, Version=1.0.1765.0, Culture=neutral, PublicKeyToken=6bb96f3d82daa243
// Global type: <Module> // Architecture: AnyCPU (64-bit preferred) // Runtime: .NET 2.0
// mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 // OEIShared, Version=1.0.1765.0, Culture=neutral, PublicKeyToken=6bb96f3d82daa243 // System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a // System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 // System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 // DotNetMagic2005, Version=5.0.1.0, Culture=neutral, PublicKeyToken=6bb96f3d82daa243 // SandBar, Version=1.3.4.1, Culture=neutral, PublicKeyToken=75b7ec17dd7c14c3 // QWhale.Syntax, Version=1.3.3516.30270, Culture=neutral, PublicKeyToken=cd79f04377768f46 // System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a // Microsoft.DirectX, Version=1.0.2902.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 // GlacialTreeList, Version=2.3.2.0, Culture=neutral, PublicKeyToken=6bb96f3d82daa243 // ManagedElectron, Version=1.0.1765.0, Culture=neutral, PublicKeyToken=6bb96f3d82daa243 // Microsoft.DirectX.AudioVideoPlayback, Version=1.0.2902.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 // Sano.PersonalProjects.ColorPicker.Controls, Version=0.1.1.0, Culture=neutral, PublicKeyToken=6bb96f3d82daa243 // XPExplorerBar, Version=3.3.0.0, Culture=neutral, PublicKeyToken=26272737b5f33015 // SmartPropertyGrid, Version=1.1.0.30, Culture=neutral, PublicKeyToken=e293f9639c6b7e7d // SourceGrid2, Version=2.2.0.0, Culture=neutral, PublicKeyToken=ad929b4064585aea // System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 // QWhale.Editor, Version=1.3.3516.30281, Culture=neutral, PublicKeyToken=cd79f04377768f46 // IRenderer, Version=1.0.3516.30272, Culture=neutral, PublicKeyToken=6bb96f3d82daa243 // OEILocalization, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6bb96f3d82daa243 // Microsoft.VisualC, Version=7.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a // ManagedResourceInterface, Version=1.0.3516.30318, Culture=neutral, PublicKeyToken=6bb96f3d82daa243 // managednwscript, Version=1.0.1765.0, Culture=neutral, PublicKeyToken=6bb96f3d82daa243 // ICSharpCode.SharpZipLib, Version=0.83.1.0, Culture=neutral, PublicKeyToken=1b03e6acf1164f73 // mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 // NWN2RulesLib.dll
using System; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Security; using System.Security.Permissions;
[assembly: AssemblyVersion("1.0.1765.0")] [assembly: AssemblyCompany("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCopyright("")] [assembly: AssemblyDelaySign(false)] [assembly: AssemblyDescription("")] [assembly: AssemblyKeyName("")] [assembly: AssemblyProduct("")] [assembly: AssemblyTitle("")] [assembly: AssemblyTrademark("")] [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: ComVisible(false)] [assembly: Guid("A517C836-0AF4-4cb5-ACBE-6502F087531C")] [assembly: SecurityPermission(8, SkipVerification = true)] [module: UnverifiableCode] --- snip ---
MS .NET Frameworks don't provide managed DirectX runtime.
You either:
* didn't run/skipped the DirectX 9 installer (the GOG.com package contains DX9 and .NET 3.5 runtime installers) * the main installer checked for Direct 9 presence and skipped it on its own due to Wine registry keys, missing the managed DirectX install part
Either run 'winetricks -q directx9' which installs the needed .NET assemblies or let the game distributed DX9 runtime installer do its job.
Remove all overrides afterwards since the winetricks recipe will pollute the prefix unnecessarily.
--- snip --- $ find . -name "*DirectX*.dll" ./windows/Microsoft.NET/DirectX for Managed Code/1.0.2902.0/Microsoft.DirectX.Direct3DX.dll ./windows/Microsoft.NET/DirectX for Managed Code/1.0.2902.0/Microsoft.DirectX.dll ./windows/Microsoft.NET/DirectX for Managed Code/1.0.2902.0/Microsoft.DirectX.AudioVideoPlayback.dll ./windows/Microsoft.NET/DirectX for Managed Code/1.0.2902.0/Microsoft.DirectX.Diagnostics.dll ./windows/Microsoft.NET/DirectX for Managed Code/1.0.2902.0/Microsoft.DirectX.Direct3D.dll ./windows/Microsoft.NET/DirectX for Managed Code/1.0.2902.0/Microsoft.DirectX.DirectDraw.dll ./windows/Microsoft.NET/DirectX for Managed Code/1.0.2902.0/Microsoft.DirectX.DirectInput.dll ./windows/Microsoft.NET/DirectX for Managed Code/1.0.2902.0/Microsoft.DirectX.DirectPlay.dll ./windows/Microsoft.NET/DirectX for Managed Code/1.0.2902.0/Microsoft.DirectX.DirectSound.dll ./windows/Microsoft.NET/DirectX for Managed Code/1.0.2903.0/Microsoft.DirectX.Direct3DX.dll ./windows/Microsoft.NET/DirectX for Managed Code/1.0.2904.0/Microsoft.DirectX.Direct3DX.dll ./windows/Microsoft.NET/DirectX for Managed Code/1.0.2905.0/Microsoft.DirectX.Direct3DX.dll ./windows/Microsoft.NET/DirectX for Managed Code/1.0.2906.0/Microsoft.DirectX.Direct3DX.dll ./windows/Microsoft.NET/DirectX for Managed Code/1.0.2907.0/Microsoft.DirectX.Direct3DX.dll ./windows/Microsoft.NET/DirectX for Managed Code/1.0.2908.0/Microsoft.DirectX.Direct3DX.dll ./windows/Microsoft.NET/DirectX for Managed Code/1.0.2909.0/Microsoft.DirectX.Direct3DX.dll ./windows/Microsoft.NET/DirectX for Managed Code/1.0.2910.0/Microsoft.DirectX.Direct3DX.dll ./windows/Microsoft.NET/DirectX for Managed Code/1.0.2911.0/Microsoft.DirectX.Direct3DX.dll ./windows/assembly/GAC/Microsoft.DirectX.Direct3DX/1.0.2902.0__31bf3856ad364e35/Microsoft.DirectX.Direct3DX.dll ./windows/assembly/GAC/Microsoft.DirectX.Direct3DX/1.0.2903.0__31bf3856ad364e35/Microsoft.DirectX.Direct3DX.dll ./windows/assembly/GAC/Microsoft.DirectX.Direct3DX/1.0.2904.0__31bf3856ad364e35/Microsoft.DirectX.Direct3DX.dll ./windows/assembly/GAC/Microsoft.DirectX.Direct3DX/1.0.2905.0__31bf3856ad364e35/Microsoft.DirectX.Direct3DX.dll ./windows/assembly/GAC/Microsoft.DirectX.Direct3DX/1.0.2906.0__31bf3856ad364e35/Microsoft.DirectX.Direct3DX.dll ./windows/assembly/GAC/Microsoft.DirectX.Direct3DX/1.0.2907.0__31bf3856ad364e35/Microsoft.DirectX.Direct3DX.dll ./windows/assembly/GAC/Microsoft.DirectX.Direct3DX/1.0.2908.0__31bf3856ad364e35/Microsoft.DirectX.Direct3DX.dll ./windows/assembly/GAC/Microsoft.DirectX.Direct3DX/1.0.2909.0__31bf3856ad364e35/Microsoft.DirectX.Direct3DX.dll ./windows/assembly/GAC/Microsoft.DirectX.Direct3DX/1.0.2910.0__31bf3856ad364e35/Microsoft.DirectX.Direct3DX.dll ./windows/assembly/GAC/Microsoft.DirectX.Direct3DX/1.0.2911.0__31bf3856ad364e35/Microsoft.DirectX.Direct3DX.dll ./windows/assembly/GAC/Microsoft.DirectX/1.0.2902.0__31bf3856ad364e35/Microsoft.DirectX.dll ./windows/assembly/GAC/Microsoft.DirectX.AudioVideoPlayback/1.0.2902.0__31bf3856ad364e35/Microsoft.DirectX.AudioVideoPlayback.dll ./windows/assembly/GAC/Microsoft.DirectX.Diagnostics/1.0.2902.0__31bf3856ad364e35/Microsoft.DirectX.Diagnostics.dll ./windows/assembly/GAC/Microsoft.DirectX.Direct3D/1.0.2902.0__31bf3856ad364e35/Microsoft.DirectX.Direct3D.dll ./windows/assembly/GAC/Microsoft.DirectX.DirectDraw/1.0.2902.0__31bf3856ad364e35/Microsoft.DirectX.DirectDraw.dll ./windows/assembly/GAC/Microsoft.DirectX.DirectInput/1.0.2902.0__31bf3856ad364e35/Microsoft.DirectX.DirectInput.dll ./windows/assembly/GAC/Microsoft.DirectX.DirectPlay/1.0.2902.0__31bf3856ad364e35/Microsoft.DirectX.DirectPlay.dll ./windows/assembly/GAC/Microsoft.DirectX.DirectSound/1.0.2902.0__31bf3856ad364e35/Microsoft.DirectX.DirectSound.dll --- snip ---
There is also bug 34045 ("Provide Managed DirectX replacement assemblies for Mono") but that one targets Wine-Mono and will likely stay forever^H^H^H^H a long time.
---
It's possible to create a winetricks recipe for managed DirectX runtime install without using the atomic bomb option 'directx9'.
Essentially you do it as MS suggests when providing a minimized DX install. Create a folder and put the following files into:
--- snip --- $ ls -1sh total 8.4M
1.1M Apr2006_d3dx9_30_x86.cab 4.0M Apr2006_MDX1_x86_Archive.cab 896K Apr2006_MDX1_x86.cab 1.8M dsetup32.dll 88K DSETUP.dll 528K DXSETUP.exe 92K dxupdate.cab --- snip ---
You must ensure that at least one MS .NET Framework is present *prior* running the DX installer otherwise the .NET assemblies are not getting installed in GAC.
You either run 'dxsetup.exe' (user-interface) or unattended by passing '/silent' option and end up with minimal managed DX 9 runtime.
NOTE: Inclusion of 'Apr2006_d3dx9_30_x86.cab' is not a mistake, it must be present since MDX inf has dependencies to this.
$ wine --version wine-1.7.49
Regards
https://bugs.winehq.org/show_bug.cgi?id=39059
--- Comment #2 from b.barwich@hotmail.com --- Hello,
Thank you for you interest. I cant really understand which d3dx/directx else I should install. I was suposing that I really have all available d3dx libraries installed with winetricks.
$ winetricks list-installed corefonts d3dcompiler_43 d3dx10 d3dx11_42 d3dx11_43 d3dx9_26 d3dx9_28 d3dx9_31 d3dx9_35 d3dx9_36 d3dx9_39 d3dx9_42 d3dx9_43 d3dx9 directplay directx9 dotnet20 vcrun2005 vcrun2008 xact_jun2010 xact xinput
https://bugs.winehq.org/show_bug.cgi?id=39059
--- Comment #3 from b.barwich@hotmail.com --- I was checking back at the wiki and the actual state of wine is still that you cant install native Directx http://wiki.winehq.org/Native_D3DX9
so I supposed that I should have the needed libraries.
Did you get the application working? Did you run the Microsoft Directx9 installer?
https://bugs.winehq.org/show_bug.cgi?id=39059
--- Comment #4 from Anastasius Focht focht@gmx.net --- Hello,
--- quote --- Did you get the application working? --- quote ---
Yes.
--- quote --- Did you run the Microsoft Directx9 installer? --- quote ---
Initially yes, before I minimized that prerequisite into managed DirectX recipe.
Recent 'winetricks' also has 'managed DirectX' recipe now:
https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetrick... (http://wiki.winehq.org/winetricks)
-> 'winetricks mdx'
Also your list of installed winetricks recipes is way too long. Don't install them unless absolutely needed. I didn't need any of them.
Regards
https://bugs.winehq.org/show_bug.cgi?id=39059
--- Comment #5 from b.barwich@hotmail.com --- I am also running a Centos7 system on which I also have wine and winetricks installed.
$ wine --version wine-1.7.21 $ winetricks --version 20141130 - sha1sum: 7f03acb40d7fe3b6f3a1477ff936b3b17886e634
On that system I was unable to install dotnet20 because the Microsoft Installer failed during installation. But according to your first hint I tried to install dotnet35 that did install me dotnet20sp1 dotnet20 dotnet30sp1 Having those libraries installed I finally was able to run the Application.
On the first Debian8 system I tried to repeat the installation but winetricks would not install dotnet30 because it said it would conflict with dotnet20 and dotnet30sp1 would conflict with dotnet20sp1. But I managed to download the native .NET 3.0 installer and to run it with wine. After that I could run on the first system the Application as well
So I understand that the requisit for this Application is dotnet30
But after all I was unable to install dotnet35 or native .NET 3.5
Certain functionality does not work on wine with dotnet30. I hope that will fixed with dotnet35.
https://bugs.winehq.org/show_bug.cgi?id=39059
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #6 from Bruno Jesus 00cpxxx@gmail.com --- Closing invalid bugs.