ModOrganizer2 / modorganizer

Mod manager for various PC games. Discord Server: https://discord.gg/ewUVAqyrQX if you would like to be more involved
http://www.nexusmods.com/skyrimspecialedition/mods/6194
GNU General Public License v3.0
2.22k stars 162 forks source link

Failed to load the plugin 'installer_omod.dll' while start #1413

Open GF-Huang opened 3 years ago

GF-Huang commented 3 years ago

image

image

Holt59 commented 3 years ago

You probably need to install .NET framework: https://dotnet.microsoft.com/download/dotnet-framework (version 4.8 should do it).

GF-Huang commented 3 years ago

Not this issue.

image

Holt59 commented 3 years ago

Then you probably need to upload your logs.

Link to Mod Organizer logs:

Right click on the log window at the bottom of MO2, set log level to debug, restart Mo2 and reproduce the problem. To access the log files you can press the Open folder icon over the modlist and select "Open MO2 Logs folder".

MO Interface:

Create a GIST which is a paste of your mo_interface logs, and link them here. Do NOT paste your full mo_interface logs here, as it will make this issue very long and hard to read! If you are reporting a bug, always include the mo_interface logs!

GF-Huang commented 3 years ago

https://gist.github.com/GF-Huang/c76f7720a767fec0818d756c68f85484

Holt59 commented 3 years ago

The OMOD installer is loaded correctly in this log.

GF-Huang commented 3 years ago

I uninstall then re-install and click load this plugin, the issue disappeared.

rulatir commented 3 years ago

I am running with Lutris and I can't even get MO2 to run at all due to these bugs. There are 2 plugins that fail, "installer_omod.dll" and "installer_fomod_csharp.dll", and I click "Blacklist this plugin" but the blacklisting decision doesn't seem to be persisted because I keep getting these messages every time I start.

I installed MO2 using https://github.com/rockerbacon/lutris-skyrimse-installers , and it worked until I got clever and chose to allow it to self-update. It failed to restart after the update, and I am getting these messages ever since.

isanae commented 3 years ago

@rulatir What version of MO are you on?

rulatir commented 3 years ago

Was on 2.2.2.1, currently unsure because I can't get to the point where it would show me the current version, but it should be the newest that is available through online self-update because I just did that?

isanae commented 3 years ago

Can you come by the discord when you have a minute? Assuming you're on 2.4.0, there are no known issues with the blacklist. In the meantime, you can always downgrade to 2.2.2.1 if you want.

rulatir commented 3 years ago

I reinstalled 2.2.2.1 and it seems to be working.

AnyOldName3 commented 3 years ago

Isa, bear in mind Lutris is mostly a Wine wrapper, so this is Linux. Here be dragons. As for the failure, my initial guess is Wine's got dodgy .NET FX 4.8 support or is accidentally configured such that it's just totally missing. Looking at the script in the linked repo, it seems only to be requesting the .NET Framework 4.0 from Winetricks, which is definitely below our minimum requirement.

Cynthius commented 3 years ago

I'm getting this issue too. .NET 4.8 is installed, and I've tried uninstalling and reinstalling MO2. I've also tried uninstalling and downgrading to 2.2.2.1 like rulatir mentioned. It no longer throws the error, but omods still don't show up in the downloads tab to install. They're immediately removed from the list once their download has finished.

Here's the GIST from the error: https://gist.github.com/Cynthius/f3fd34f039605b4f8bb35a4298d079f9

AnyOldName3 commented 3 years ago

That's not actually got the error in it - it just says user skipped plugin 'installer_omod.dll', remembering in loadcheck, so presumably at some point in the past when you had the error, you clicked the button to not try loading it in the future. Can you go into MO2's settings, then to the plugins tab, and check the OMOD installer isn't in the blacklist or otherwise disabled, then restart MO2 and send us a new log, please?

Cynthius commented 3 years ago

Ah, sorry. Got a bit confused with the order I had to do things in. I've replaced it with a log that does have the error now. Not sure if that's bad practice or not.

Here's the link, for convenience: https://gist.github.com/Cynthius/f3fd34f039605b4f8bb35a4298d079f9

AnyOldName3 commented 3 years ago

There's nothing particularly helpful in that log, either. It says a core dump was created, so maybe that'll tell us more.

Cynthius commented 3 years ago

How should I send the in core dump?

AnyOldName3 commented 3 years ago

I guess zip it and attach it here.

Cynthius commented 3 years ago

Alright, here's the dump:

Core Dump.zip

AnyOldName3 commented 3 years ago

The main thread, which is the most likely to have died, doesn't seem to have anything on its stack bar one NT DLL function call, so I don't think that's going to be helpful, unfortunately.

Cynthius commented 3 years ago

Sure. Just tell me if there's anything else I can do to help.

mrudat commented 3 years ago

Not certain if this is the same underlying error, but I'm also getting the same message against MO2 2.4.1, which I did not get against MO 2.4.0.

Here are two relevant events out of the event log that might help shed some light on what's going on:

Application error:

Faulting application name: ModOrganizer.exe, version: 2.4.1.0, time stamp: 0x6056203e
Faulting module name: KERNELBASE.dll, version: 10.0.19041.804, time stamp: 0x0e9c5eae
Exception code: 0xe0434352
Fault offset: 0x000000000002d759
Faulting process ID: 0x6210
Faulting application start time: 0x01d72376973778ce
Faulting application path: C:\Modding\MO2\ModOrganizer.exe
Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll
Report ID: 58ed8909-5252-41e2-ad32-f865e24695b4
Faulting package full name: 
Faulting package-relative application ID: 

.Net Runtime:

Application: ModOrganizer.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.NotSupportedException

Exception Info: System.IO.FileLoadException
   at System.Reflection.RuntimeAssembly._nLoad(System.Reflection.AssemblyName, System.String, System.Security.Policy.Evidence, System.Reflection.RuntimeAssembly, System.Threading.StackCrawlMark ByRef, IntPtr, Boolean, Boolean, Boolean)
   at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(System.Reflection.AssemblyName, System.Security.Policy.Evidence, System.Reflection.RuntimeAssembly, System.Threading.StackCrawlMark ByRef, IntPtr, Boolean, Boolean, Boolean)
   at System.Reflection.RuntimeAssembly.InternalLoadFrom(System.String, System.Security.Policy.Evidence, Byte[], System.Configuration.Assemblies.AssemblyHashAlgorithm, Boolean, Boolean, System.Threading.StackCrawlMark ByRef)
   at System.Reflection.Assembly.LoadFrom(System.String)
   at <Module>.AssemblyResolver.OnAssemblyResolve(System.Object, System.ResolveEventArgs)
   at System.AppDomain.OnAssemblyResolveEvent(System.Reflection.RuntimeAssembly, System.String)

Exception Info: System.IO.FileLoadException
   at <Module>.OMODFrameworkWrapper.constructorHelper(OMODFrameworkWrapper*)
   at <Module>.OMODFrameworkWrapper.{ctor}(OMODFrameworkWrapper*, MOBase.IOrganizer*, QWidget*)
   at <Module>.std.make_unique<class OMODFrameworkWrapper,class MOBase::IOrganizer * &,0>(std.unique_ptr<OMODFrameworkWrapper,std::default_delete<OMODFrameworkWrapper> >*, MOBase.IOrganizer**)
   at <Module>.InstallerOMOD.init(InstallerOMOD*, MOBase.IOrganizer*)

Edit: I installed MO 2.4.0 in place of 2.4.1 and I get the same error, but it was working just fine before I upgraded; perhaps something else was upgraded that's causing problems.

AnyOldName3 commented 3 years ago

What do you get if you run this in PowerShell?

Get-ChildItem HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\
mrudat commented 3 years ago

What do you get if you run this in PowerShell?

Get-ChildItem HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\

I've got VS 2019 installed, so I have many versions of .NETFramework installed, both SDK and Client.

ls HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\ | FT Name
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.0
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.0,Profile=Client
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.0.1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.0.1,Profile=Client
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.0.2
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.0.2,Profile=Client
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.0.3
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.0.3,Profile=Client
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.5
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.5.1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.5.2
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.5.3
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.6
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.6.1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.6.2
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.7
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.7.1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.7.2
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.8
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\Client
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\Default
AnyOldName3 commented 3 years ago

So literally the same as I've got, and it works for me.

If you've got VS installed, I guess you could try debugging MO2. We've got PDBs somewhere. Hopefully, with the mode set to mixed (for some reason, with auto, it doesn't notice the .NET stuff) you can get it to break on the right exception and might see something helpful, e.g. it having loaded a much-too-old .NET Framework DLL, despite you having 4.8 installed.

mrudat commented 3 years ago

After reinstalling my graphics card drivers, steam, and rebooting my computer a silly number of times... it looks like it's working (for now).

sugoidogo commented 3 years ago

I'm having this issue on 2.4.2, windows 10 19041. Same unhelpful log with core dump. Let me know what I can do to track it down.

AnyOldName3 commented 3 years ago

Depending on what caused it to die, there's a change that didn't quite make it into 2.4.2 that should make it log a few more potential errors instead of totally exploding.

sugoidogo commented 3 years ago

Got a pr/commit to reference for that?

LostDragonist commented 3 years ago

Probably https://github.com/ModOrganizer2/modorganizer-installer_omod/pull/3 or https://github.com/ModOrganizer2/modorganizer-installer_omod/pull/4

IsaacSin commented 3 years ago

I was encountering this problem, then I remembered that I had changed the install directory to be under Program Files. I ran ModOrganizer.exe as admin and it loaded properly. I then promptly reinstalled under the default directory and it worked without admin.

Looking at Cynthius's log, they also had it installed under Program Files, so it might have been the same case. mrudat had it under the default, though, so that's not all that's going on here.

sugoidogo commented 3 years ago

I also keep mod organizer in program files. Sounds like it might be UAC related.

AnyOldName3 commented 3 years ago

In general, if software doesn't work, it's a really bad idea to run it as Admin. It's demonstrated it's not capable of doing what you tell it, and suddenly you're giving it more power. It's analogous to giving a child a submachine gun because you were annoyed that they weren't picking up their Nerf darts. Unfortunately, Microsoft accidentally trained people to include it in their troubleshooting when they rushed Vista out the door without giving developers enough time to adapt their applications to work with it.

sugoidogo commented 3 years ago

It's just a troubleshooting step, we're not keeping it that way. It seems the solution is probably to follow the advice to install MO outside of program files. Issue closed? Unless we feel like hunting this one down, just to make sure there's not a legit underlying issue.

AnyOldName3 commented 3 years ago

Nah, something's broken and now we have repro steps, so hopefully it'll be a simple fix. Having MO2 out of Program Files will work as a workaround until another release happens, though.

AnyOldName3 commented 3 years ago
System.TypeInitializationException
  HResult=0x80131534
  Message=The type initializer for 'OMODFramework.Utils' threw an exception.
  Source=installer_omod
  StackTrace:
   at OMODFrameworkWrapper.initFrameworkSettings(OMODFrameworkWrapper* )
   at OMODFrameworkWrapper.{ctor}(OMODFrameworkWrapper* , IOrganizer* organizer, QWidget* parentWidget)
   at std.make_unique<class OMODFrameworkWrapper,class MOBase::IOrganizer * &,0>(unique_ptr<OMODFrameworkWrapper\,std::default_delete<OMODFrameworkWrapper> >* , IOrganizer** <_Args_0>)
   at InstallerOMOD.init(InstallerOMOD* , IOrganizer* moInfo)

  This exception was originally thrown at this call stack:
    OMODFramework.FileLogger.Init()
    OMODFramework.Utils.Utils()

Inner Exception 1:
OMODFrameworkException: Could not create logging file at C:\Program Files\MO2\plugins\data\OMODFramework.log
System.UnauthorizedAccessException: Access to the path 'C:\Program Files\MO2\plugins\data\OMODFramework.log' is denied.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
   at OMODFramework.FileLogger.Init()
AnyOldName3 commented 3 years ago

https://github.com/ModOrganizer2/modorganizer-installer_omod/pull/5 should fix this.

poperigby commented 3 years ago

I'm having this issue on Linux, but MO2 is installed in C:\Modding\MO2 in my Wine prefix, and not Program Files. Is it the same problem?

AnyOldName3 commented 3 years ago

No. There's an issue where Wine doesn't know we need the .NET framework 4.8, but I can't remember whether that's the only issue.

poperigby commented 3 years ago

Ah. It might have something to do with .NET 4.8 being broken since WINE 6.10

This package (dotnet48) is broken in wine-6.10. Broken since 5.18. See https://bugs.winehq.org/show_bug.cgi?id=49897 for more info. Use --force to try anyway.

Edit: https://bugs.winehq.org/show_bug.cgi?id=49897

poperigby commented 3 years ago

@AnyOldName3 so, I was able to install .NET 4.8, but it causes WINE to crash:

0108:err:kerberos:kerberos_LsaApInitializePackage no Kerberos support, expect problems
0108:err:winediag:check_version ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
0108:err:ntlm:ntlm_LsaApInitializePackage no NTLM support, expect problems
[2021-07-02 03:08:36.680 D] timing: MOApplication() 0 ms
[2021-07-02 03:08:36.681 D] timing: main() multiprocess 112 ms
[2021-07-02 03:08:36.685 D] looking for plugins in C:\Modding\MO2\plugins
[2021-07-02 03:08:36.686 D] loaded plugin 'BSA Extractor' from 'bsa_extractor.dll' - [Plugin]
[2021-07-02 03:08:36.693 D] loaded plugin 'BSA Packer' from 'bsa_packer.dll' - [Tool]
[2021-07-02 03:08:36.694 D] loaded plugin 'FNIS Checker' from 'check_fnis.dll' - [Plugin]
[2021-07-02 03:08:36.695 D] loaded plugin 'Basic diagnosis plugin' from 'diagnose_basic.dll' - [Diagnose]
[2021-07-02 03:08:36.697 D] loaded plugin 'Enderal Support Plugin' from 'game_enderal.dll' - [Game, File Mapper]
[2021-07-02 03:08:36.698 D] loaded plugin 'Enderal Special Edition Support Plugin' from 'game_enderalse.dll' - [Game, File Mapper]
[2021-07-02 03:08:36.700 D] loaded plugin 'Fallout 3 Support Plugin' from 'game_fallout3.dll' - [Game, File Mapper]
[2021-07-02 03:08:36.702 D] loaded plugin 'Fallout 4 Support Plugin' from 'game_fallout4.dll' - [Game, File Mapper]
[2021-07-02 03:08:36.704 D] loaded plugin 'Fallout 4 VR Support Plugin' from 'game_fallout4vr.dll' - [Game, File Mapper]
[2021-07-02 03:08:36.706 D] loaded plugin 'Fallout NV Support Plugin' from 'game_falloutNV.dll' - [Game, File Mapper]
[2021-07-02 03:08:36.707 D] loaded plugin 'Morrowind Support Plugin' from 'game_morrowind.dll' - [Game, File Mapper]
[2021-07-02 03:08:36.709 D] loaded plugin 'Oblivion Support Plugin' from 'game_oblivion.dll' - [Game, File Mapper]
[2021-07-02 03:08:36.710 D] loaded plugin 'Skyrim Support Plugin' from 'game_skyrim.dll' - [Game, File Mapper]
[2021-07-02 03:08:36.712 D] loaded plugin 'Skyrim Special Edition Support Plugin' from 'game_skyrimse.dll' - [Game, File Mapper]
[2021-07-02 03:08:36.714 D] loaded plugin 'Skyrim VR Support Plugin' from 'game_skyrimvr.dll' - [Game, File Mapper]
[2021-07-02 03:08:36.716 D] loaded plugin 'Fallout TTW Support Plugin' from 'game_ttw.dll' - [Game, File Mapper]
[2021-07-02 03:08:36.717 D] loaded plugin 'INI Bakery' from 'inibakery.dll' - [File Mapper]
[2021-07-02 03:08:36.718 D] loaded plugin 'INI Editor' from 'inieditor.dll' - [Tool]
[2021-07-02 03:08:36.719 D] loaded plugin 'BAIN Installer' from 'installer_bain.dll' - [Installer]
[2021-07-02 03:08:36.720 D] loaded plugin 'Bundle Installer' from 'installer_bundle.dll' - [Installer]
[2021-07-02 03:08:36.721 D] loaded plugin 'Fomod Installer' from 'installer_fomod.dll' - [Installer, Diagnose]
0108:err:mscoree:LoadLibraryShim error reading registry key for installroot
0108:err:mscoree:CLRRuntimeInfo_GetRuntimeDirectory error reading registry key for installroot
0108:err:mscoree:ReallyFixupVTable unable to fixup vtable, hr=80004005, status=0
0108:err:mscoree:expect_no_runtimes Process exited with a Mono runtime loaded.
AnyOldName3 commented 3 years ago

That's definitely a WINE problem rather than a me problem. Presumably, they're already tracking the lack of 4.8 support so there's not much we can do to speed it up.

poperigby commented 3 years ago

I don't actually, see any open bugs about 4.8, and the one I linked earlier is closed,

AnyOldName3 commented 3 years ago

I just googled the last line of the error and a vaguely similar issue report for different software said that the only supported way to install the .NET framework for WINE is via WineTricks. Is that how you installed it, or did you just run the Windows installer under WINE?

poperigby commented 3 years ago

I just ran the Windows installer under WINE. Can you send me that link, please?

AnyOldName3 commented 3 years ago

https://forum.winehq.org/viewtopic.php?t=32302#p122004

poperigby commented 3 years ago

Maybe I should file a WINE bug report.

eddwarddd commented 3 years ago

Hey, I fixed this by installing dotnet 4.8 through winetricks -q dotnet48 , runs perfectly now.

poperigby commented 3 years ago

@eddwarddd Did you have to force it? It gives me this error:

warning: This package (dotnet48) is broken in wine-6.12. Broken since 5.18. See https://bugs.winehq.org/show_bug.cgi?id=49897 for more info. Use --force to try anyway.
poperigby commented 3 years ago

Nevermind. Forcing it, did in fact work.