Erkennen, welche DLLs vcredist_x86.exe (VC 2012) auf dem Zielsystem installiert

windows
visualstudio
Tags: #<Tag:0x00007f9ae0de40b8> #<Tag:0x00007f9ae0debcc8>

#1

Um in Zeta Producer eine GraphicsMagick-Bibliothek zu verwenden, muss die “Visual C++ Redistributable for Visual Studio 2012”-Bibliothek (kurz “VCREDIST”) installiert sein.

Da Zeta Producer, inklusive dessen Installation, auch ohne Administrator-Berechtigungen läuft, ist mein Ziel, dass das auch so bleibt.

Dementsprechend war es mir wichtig, auch VCREDIST ohne (Administrator-)Installation mitzugeben.

Wenn die DLLs im selben Ordner wie die Programmdateien von Zeta Producer liegen, dann ist das möglich.

Leider sind die Bibliothken nicht so einfach zu ermitteln, da VCREDIST ein Setup-Programmdatei ist (EXE), ohne die Chance, einen Programmordner anzugeben.

Vorgehen

Ein Lösung war dann im Artikel “Extract MSI from Visual C++ 2012 Redistributable” beschrieben:

  1. In der Registry nach dem Uninstall-Schlüssel suchen (bei mir war es “Microsoft Visual C++ 2012”, etwas anders als im Artikel beschrieben, weil ich die x86-Version benutzt hatte).
  2. Dann dort den InstallSource-Eintrag anschauen und die dort verlinkte MSI-Datei kopieren.
  3. Aus diesem MSI dann mit lessmsi die DLLs extrahieren.

Anschließend habe ich die DLLs in den selben Ordner wie die GraphicsMagick-Assembly (DLL) gelegt und danach lief mein Programm korrekt.

Hinweis

Ich hatte zunächst die AnyCPU-Version des GraphicMagick-NuGet-Pakets genommen. Damit lief es wie oben angegeben nicht.

Als ich dann die x86-Version genommen habe und auch von VCREDIST die x86-Version, dann hat es funktioniert.


#2

Auch nett ist das Tool “All in One Runtimes”, mit dem die ganzen Runtimes grafisch installiert werden können.