ivan_b
Topic Author
Posts: 100
Joined: 22 Jul 2015, 12:57

Noesis.dll could not be loaded on Windows

16 Sep 2023, 12:40

Hello,

On some Windows PC I am having some trouble running our app with Unity because of this error
Plugins: Failed to load .../Plugins\x86_64/Noesis.dll' because one or more of its dependencies could not be loaded
(the same is for 32 and 64 bit versions).
The version of Noesis is 3.2.1. I have looked at the dependencies for this dll and i got this
Image has the following dependencies:

KERNEL32.dll
USER32.dll
SHELL32.dll
WS2_32.dll
DWrite.dll
VCRUNTIME140.dll
api-ms-win-crt-stdio-l1-1-0.dll
api-ms-win-crt-string-l1-1-0.dll
api-ms-win-crt-time-l1-1-0.dll
api-ms-win-crt-heap-l1-1-0.dll
api-ms-win-crt-math-l1-1-0.dll
api-ms-win-crt-utility-l1-1-0.dll
api-ms-win-crt-runtime-l1-1-0.dll
When looking at some older versions (I think it was 2.*) Noesis.dll has only this dependencies
Image has the following dependencies:

KERNEL32.dll
USER32.dll
Is this some wrong version of dll that I am using (a dll used only in Unity Editor) or the issue is somewhere else?
Thank you.
 
User avatar
maherne
Site Admin
Posts: 42
Joined: 01 Jul 2022, 10:10

Re: Noesis.dll could not be loaded on Windows

18 Sep 2023, 20:24

Hi Ivan,

Have you tried installing Noesis 3.2.1 on a clean Unity project? Is this happening there also?

Could you provide the Unity version you are using, along with the OS version?

Thanks,

Mark
 
User avatar
jsantos
Site Admin
Posts: 3992
Joined: 20 Jan 2012, 17:18
Contact:

Re: Noesis.dll could not be loaded on Windows

18 Sep 2023, 23:50

With Noesis 3.X we started to dynamically compile the CRT in our C++ library (before, this was a static dependency). This was changed to reduce the size of our binary because the UCRT used by Visual Studio is part of the operating system in Windows 10+. This is the reason you are observing missing dependencies.

What version of Windows is this?
 
ivan_b
Topic Author
Posts: 100
Joined: 22 Jul 2015, 12:57

Re: Noesis.dll could not be loaded on Windows

19 Sep 2023, 08:14

Thank you jsantos for the detailed explanation. So far it seems happening only on Windows 10. We tested on 3 Windows 11 and on 2 Windows 10 version. The version of Unity that we use is 2022.2.18.
So far I have not tried to reproduce it on an empty project but will give it a try.
 
ivan_b
Topic Author
Posts: 100
Joined: 22 Jul 2015, 12:57

Re: Noesis.dll could not be loaded on Windows

19 Sep 2023, 09:58

I have tried to run it with a clean project and I get that the message that the program could not find MSVCP140.dll
https://1drv.ms/i/s!AvieguYgfXxmx1dvuSTu1p-TOL9K. I do not know of this is a dependency of one of the dll that Noesis depends on or just the settings in this sample projects were wrong.
 
User avatar
jsantos
Site Admin
Posts: 3992
Joined: 20 Jan 2012, 17:18
Contact:

Re: Noesis.dll could not be loaded on Windows

19 Sep 2023, 11:38

Sorry for the confusion. This is not related to Unity version or your project configuration at all.

Our library (Noesis.dll) is dynamically linking with the CRT. The CRT is part of the operating system (since Windows 10) and it is installed through Windows Update. If the Windows version is old or didn't run any Windows Update, the CRT may be missing and needs to be installed manually with your application installer.

https://learn.microsoft.com/en-us/cpp/p ... w=msvc-170
https://learn.microsoft.com/en-us/cpp/w ... w=msvc-170

Probably installing this should be enough:

https://www.microsoft.com/en-US/downloa ... x?id=52685
 
ivan_b
Topic Author
Posts: 100
Joined: 22 Jul 2015, 12:57

Re: Noesis.dll could not be loaded on Windows

19 Sep 2023, 12:43

No worries, there was no confusion, I was just replying to you and maherne in the same post :), sorry about that.
Would it be a problem to create the Noesis dll with statically build CRT? We have some users that do not update their OS that often so I am not sure how thrilled they would be if we asked them to install something additional just for our app to work normally.
I know that this is safe it is just that the end user might not like it that much :)
 
User avatar
jsantos
Site Admin
Posts: 3992
Joined: 20 Jan 2012, 17:18
Contact:

Re: Noesis.dll could not be loaded on Windows

26 Sep 2023, 11:54

Aren't your users installing your application? You could install the CRT as an extra step in your installation process.
 
ivan_b
Topic Author
Posts: 100
Joined: 22 Jul 2015, 12:57

Re: Noesis.dll could not be loaded on Windows

04 Oct 2023, 19:07

Thank you jsanots. That makes sense to install CRT during the installation process, I was just too lazy to try to find a solution.

Now I have another problem, it seems that install CRT does not solve the problem. After installing CRT the whole application crashes.
This is a summary from WinDbg
*******************************************************************************
*                                                                             *
*                        Exception Analysis                                   *
*                                                                             *
*******************************************************************************


KEY_VALUES_STRING: 1

    Key  : AV.Dereference
    Value: NullPtr

    Key  : AV.Fault
    Value: Read

    Key  : Analysis.CPU.mSec
    Value: 31

    Key  : Analysis.Elapsed.mSec
    Value: 761

    Key  : Analysis.IO.Other.Mb
    Value: 0

    Key  : Analysis.IO.Read.Mb
    Value: 0

    Key  : Analysis.IO.Write.Mb
    Value: 0

    Key  : Analysis.Init.CPU.mSec
    Value: 15

    Key  : Analysis.Init.Elapsed.mSec
    Value: 7034

    Key  : Analysis.Memory.CommitPeak.Mb
    Value: 104

    Key  : Failure.Bucket
    Value: NULL_POINTER_READ_c0000005_Noesis.dll!Unknown

    Key  : Failure.Hash
    Value: {78ba7934-4467-e1e0-bdc3-e712ca96a58e}

    Key  : Timeline.Process.Start.DeltaSec
    Value: 21

    Key  : WER.OS.Branch
    Value: vb_release

    Key  : WER.OS.Version
    Value: 10.0.19041.1

    Key  : WER.Process.Version
    Value: 3.30.1.0


FILE_IN_CAB:  crash.dmp

CONTEXT:  (.ecxr)
rax=0000000000000011 rbx=00007ffebc2bc3a0 rcx=5f84dbf700f70000
rdx=000000000000006f rsi=000000f7e351d510 rdi=0000000000000000
rip=00007ffebc15ff81 rsp=000000f7e351d430 rbp=000000f7e351d550
 r8=0000000000000000  r9=00007ffeea050000 r10=00007ffebc2bc1f0
r11=000000f7e351d467 r12=0000024b5a924098 r13=00007ffebc2bbe00
r14=0000024b5a924098 r15=00007ffebc2bbe15
iopl=0         nv up ei pl nz na po nc
cs=0033  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00010206
Noesis+0x31ff81:
00007ffe`bc15ff81 488b07          mov     rax,qword ptr [rdi] ds:00000000`00000000=????????????????
Resetting default scope

EXCEPTION_RECORD:  (.exr -1)
ExceptionAddress: 00007ffebc15ff81 (Noesis+0x000000000031ff81)
   ExceptionCode: c0000005 (Access violation)
  ExceptionFlags: 00000000
NumberParameters: 2
   Parameter[0]: 0000000000000000
   Parameter[1]: 0000000000000000
Attempt to read from address 0000000000000000

PROCESS_NAME:  HCV.exe

READ_ADDRESS:  0000000000000000 

ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%p referenced memory at 0x%p. The memory could not be %s.

EXCEPTION_CODE_STR:  c0000005

EXCEPTION_PARAMETER1:  0000000000000000

EXCEPTION_PARAMETER2:  0000000000000000

STACK_TEXT:  
000000f7`e351d430 00007ffe`e54f7c10     : 00007ffe`80070057 00000000`00000000 00000000`00000000 00000000`00000000 : Noesis+0x31ff81
000000f7`e351d438 00007ffe`80070057     : 00000000`00000000 00000000`00000000 00000000`00000000 000000f7`e351d510 : d3d11!_com_error::`vftable'
000000f7`e351d440 00000000`00000000     : 00000000`00000000 00000000`00000000 000000f7`e351d510 505f7369`73656f4e : 0x00007ffe`80070057


SYMBOL_NAME:  Noesis+31ff81

MODULE_NAME: Noesis

IMAGE_NAME:  Noesis.dll

STACK_COMMAND:  ~41s; .ecxr ; kb

FAILURE_BUCKET_ID:  NULL_POINTER_READ_c0000005_Noesis.dll!Unknown

OS_VERSION:  10.0.19041.1

BUILDLAB_STR:  vb_release

OSPLATFORM_TYPE:  x64

OSNAME:  Windows 10

IMAGE_VERSION:  3.2.1.12507

FAILURE_ID_HASH:  {78ba7934-4467-e1e0-bdc3-e712ca96a58e}

Followup:     MachineOwner
---------
Do you know what could have caused the crash?
Here is the crash dump that was generated by Unity https://1drv.ms/u/s!AvieguYgfXxmx35XIQe ... q?e=cLsBPR .
 
User avatar
jsantos
Site Admin
Posts: 3992
Joined: 20 Jan 2012, 17:18
Contact:

Re: Noesis.dll could not be loaded on Windows

05 Oct 2023, 14:20

Yes, this have been fixed in 3.2.2

Who is online

Users browsing this forum: Bing [Bot], Google [Bot] and 1 guest