We ran into some additional trouble with deploying the OpenDnp3 64bit on a fresh MS Windows 10 x64 OS. We DID find a solution but had some follow-up questions.
We built a .Net application (.Net Framework 4.7.2) from VS2019 and referenced Opendnp3 v3.1.1 from NuGet. This was deployed on the fresh install of Win10 with the following dependencies:
· Download the "Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019" for x64.
· OpenSSL 64bit
The application did not run due to more missing DNP3CLRAdapter.dll dependencies. A dependency walker showed the 4 files below missing so we got them off another local computer. But the weird thing is, only the 32bit version would work and we’re running the 64bit version of the DNP3 dlls. Also, it looks like these are "debug versions" (denoted by the ‘D’ in the name) of C++ libraries (v2015 we think), which we didn’t understand either. These “debug versions” are not readily available in the Visual C++ Redistributables (we tried many versions.)
MSVCP140D.dll
VCRUNTIME140D.dll
VCRUNTIME140_1D.dll
ucrtbased.dll
Any idea why the DNP3CLRAdapter.dll is referencing what appears to be 32bit non-redistributables ("debug versions") of the of C++ libraries?
Additional Notes:
· The Win10 OS did happen have the “release versions” (same file name minus the ending “D”) installed.
· Fairly certain the "Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019" are required to run opendnp3 on a fresh Win OS.
· We interrogated a set of opendnp3 .net dlls compiled from Github using CMake, etc. and found it depended on the same files.