I am using SQL Anywhere 17 Developer’s version. I have created a Visual Studio 17 UWP app utilizing the WinRT x64 UltraLite library. The problem is at runtime. I get an error from the app stating that “…the module could not be loaded”. Using Procman.exe I was able to see what files the app was attempting to load from what folder. The following VCLibs are used by UltraLite: vccorlib120_app.dll, msvcp120_app.dll and msvcr120_app.dll. I have these and the “…140_app.dll” versions as well installed on my pc. These DLL’s are part of the Microsoft Visual C++ runtime libraries. As installed on my pc the “120” DLL’s are for version 12.0.3x which is part of the 2013 libraries. The “140” DLL’s are for version 14.10.2x which is part of the 2017 libraries. The problem is that when running, the UWP app/UltraLite library is looking in the version 14.10.2x install folders instead of the 12.0.3x install folders for the dll’s. These installed folders are in the WindowsApps folder. I was finally able to get my app to run by copying these 3 “120” files into the UWP’s execution folder. Question 1: Why is the WinRT UltraLite library accessing “older” version library files and not the newer version? Question 2: Why are the older version library files being looked for in the newer version’s folders? |
The documented system requirements are
The application will attempt to load the 'referenced' runtime defined in the project. In a VS15 based application, the reference used is "Microsoft Visual C++ 2013 Runtime Package for Windows Universal". I suspect that your application is referencing a newer Runtime Package for Windows Universal. |