Я отлаживаю сбой приложения C #. Сбой происходит при вызове внешней, собственной библиотеки DLL.
Журнал событий Windows содержит следующий отчет. Я нацеливаюсь на .NET 4.5 (в Visual Studio), и на целевом ПК установлена .NET 4.5.2 .
У меня вопрос: почему версия Framework указывает v4.0.30319 ? Для меня это выглядит так, будто приложение работает в неправильной среде .NET.
Application: XXXXXXX.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.AccessViolationException
Stack:
at XXXXXXX.SVcamApi+NativeMethods.SVInterfaceGetDeviceId_64(Void*, UInt32, SByte*, UInt32*)
at XXXXXXX.SVcamApi+NativeMethods.SVInterfaceGetDeviceId_64(Void*, UInt32, SByte*, UInt32*)
at XXXXXXX.SVcamApi.SVS_InterfaceGetDeviceId(IntPtr, UInt32, System.String ByRef, UInt32 ByRef)
at XXXXXXX.XXXXXXX+Cameracontainer.deviceDiscovery()
at XXXXXXX.XXXXXXX.buttonDiscover_Click(System.Object, System.EventArgs)
at XXXXXXX.XXXXXXX.DiscoverAndConnect()
at XXXXXXX.XXXXXXX..ctor()
at XXXXXXX.Program.Main()
Я подтвердил, что 4.5.2 устанавливается с помощью утилиты Raymondcc .NET Detector:
https://www.raymond.cc/blog/how-to-check-what-version-of-microsoft-net-framework-is-installed-in-computer/
Удивительно, но .NET Detector указывает, что 4.0 даже не установлен; показывает 2, 3, 3.5 и 4.5.2 как установлено.