You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As shown in #10925, out-dated MSVC redistributable packages prevent KeePassXC from being started. In some cases, installing newer MSVC redist is not an option. How about bundling necessary DLLs in portable ZIP archives, so that KeePassXC can work out-of-box (almost) everywhere?
It's also possible to directly install the Redistributable DLLs in the application local folder. The application local folder is the folder that contains your executable application file. For servicing reasons, we don't recommend you use this installation location.
The individual Redistributable DLLs are also included in your installation of Visual Studio. By default, they're installed in the Visual the %VCToolsRedistDir%[architecture]\Microsoft.[toolset].[library] folders, where [architecture] represents the target architecture, [toolset] represents the toolset version, and [library] represents the library.
It seems 4 files are needed: MSVCP140.dll, MSVCP140_1.dll, VCRUNTIME140.dll, VCRUNTIME140_1.dll
Many more than that are needed, unfortunately. The WinRT dlls are also required. I believe those are loaded at runtime which is why they don't appear in the ldd report.
If WinRT DLLs are loaded at runtime, I guess they are not needed until relevant functionality (Windows Hello?) is used. If so, bundling those 4 files can be a good start.
I have been using portable ZIP + those 4 DLLs (copied manually from another PC) for several weeks. Basic functionalities are fine - entry operations, autotype, browser integration. I cannot setup Windows Hello on that machine for testing, though.
Summary
As shown in #10925, out-dated MSVC redistributable packages prevent KeePassXC from being started. In some cases, installing newer MSVC redist is not an option. How about bundling necessary DLLs in portable ZIP archives, so that KeePassXC can work out-of-box (almost) everywhere?
Examples
I believe bundling individual DLLs in portable ZIP is allowed by the license. Such an approach is mentioned on https://learn.microsoft.com/en-us/cpp/windows/redistributing-visual-cpp-files?view=msvc-170 (not recommended, though):
Technically, relevant DLLs can be copied from Visual Studio as per https://learn.microsoft.com/en-us/cpp/windows/determining-which-dlls-to-redistribute?view=msvc-170:
It seems 4 files are needed: MSVCP140.dll, MSVCP140_1.dll, VCRUNTIME140.dll, VCRUNTIME140_1.dll
ldd output for KeePassXC.exe
Context
I'd like to use KeePassXC on computers where I don't have admin rights.
The text was updated successfully, but these errors were encountered: