none
Version of vcredist_x86.exe RRS feed

  • Frage

  • Der all,


    I am using tools which are developed with the C++ and VS2005, so in some cases i should install Microsoft Visual C++ 2005 Redistributable Package (x86)


    relating download can be found at:
    http://www.microsoft.com/downloads/details.aspx?FamilyID=32bc1bee-a3f9-4c13-9c99-220b62a191ee&displaylang=de



    The important vcredist_x86.exe has to be a miminum version of 6.0.3790.0 in my situation.

    After installation i looked at the registry key DisplayVersion found at:
    HKEY_LOCAL_MACHINE
    \SOFTWARE
    \Microsoft\Windows
    \CurrentVersion
    \Installer
    \UserData
    \S-1-5-18
    \Products
    \b25099274a207264182f8181add555d0
    \InstallProperties

    Display Version is here: 8.0.56336 which differs to the version of the vcredist_x86.exe?


    Can anybody tell me why this difference occurs?



    Any help would be great!


    Kind regards,
    #50
    Donnerstag, 9. Juli 2009 10:06

Antworten

  • 1. Deutsches Forum == Deutsche Sprache ;)
    2. Was Du hier als Version siehst ist nicht die Version der gepackten vcredist! Es ist die Version des Self-Inflating-Installers
    Meines Erachtens kann man an dieser Datei nicht erkennen was drin ist.

    Tipp:
    A. Für eine eigene Installation verwende die entsprechenden Merge Module.
    B. Wenn möglich verwende statische Linken, dann kannst Du Dir die Auslieferung der VC Runtime sparen.
    C. Siehe auch http://www.codeproject.com/KB/cpp/vcredists_x86.aspx
    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    Donnerstag, 9. Juli 2009 12:01
    Moderator
  • 1. Gegoglet hast Du vermutlich nicht nach "vcredist_x86 silent" dann wärst Du diekt hier gelandet:
    http://blogs.msdn.com/astebner/archive/2006/08/23/715755.aspx
    2. Ich habe doch schon erklärt, dass es sich hier um eine Side By Side Installation handelt. D.h. sie werden Seite an Seite im WinSxS installiert. Dein Programm nimmt die Version, die über das Manifest geregelt ist.


    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    Freitag, 10. Juli 2009 12:09
    Moderator

Alle Antworten

  • 1. Deutsches Forum == Deutsche Sprache ;)
    2. Was Du hier als Version siehst ist nicht die Version der gepackten vcredist! Es ist die Version des Self-Inflating-Installers
    Meines Erachtens kann man an dieser Datei nicht erkennen was drin ist.

    Tipp:
    A. Für eine eigene Installation verwende die entsprechenden Merge Module.
    B. Wenn möglich verwende statische Linken, dann kannst Du Dir die Auslieferung der VC Runtime sparen.
    C. Siehe auch http://www.codeproject.com/KB/cpp/vcredists_x86.aspx
    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    Donnerstag, 9. Juli 2009 12:01
    Moderator
  • Hallo MRi,


    Vielen Dank für die schnelle und ausführliche Hilfe!

    1. Sorry! ;) bin durch ein Forum hier hergekommen und habe zu spät erkannt, dass hier ein Deutsches Forum ist. ;)

    2. Wenn ich das richtig verstehe erkenne ich an der Versionsnummer der VCRedist_x86.exe nicht, was für ein Inhalt darin enthalten ist. Als verwertbare Information kann ich dagegen den "DisplayVersion" Eintrag der registry werten.
    'Meine' VCRedist_x86.exe, die ich als Basis verwende erzeugt oben genannte 8.0.56336. Aktuellere Inhalte sollten dementsprechend eine höheren Wert beim zugehörigen registry Eintrag vorweisen. Finde ich dagegen an der Stelle einen geringeren Wert steht, sollte ich VCRedist_x86.exe ausführen, um die verwendeten Programme ausführen zu können.

    Soweit richtig ?


    zu den Tipps:
    A. Bin gerade nicht sicher, was das Merge Module genau ist und wofür es verwendet wird bzw wie es mir helfen soll?!
    B. Das Statische Linken sollte m.W. bei der Kompilierung der C++ Dateien erfolgen. Ich kann diese jedoch nicht selbst erstellen, muss sie aber verwenden.
    C. Habe mir den Artikel durchgelesen, hoffe aber durch obige Vermutungen dieses nicht vertiefen zu müssen.



    GreetZ!
    #50
    Donnerstag, 9. Juli 2009 12:56
  • Die vcresidst_x86 gibt es VC2005, VC2005 SP1, VC2008, VC2008 SP1.

    An sich ist es vollkommen egal was Du installiertst. Geladen wird es aus dem Side by Side Verzeichnis. (WinSxS).
    Nimm die VC2005 SP1 und gut ists.
    http://www.microsoft.com/downloads/details.aspx?familyid=200B2FD9-AE1A-4A14-984D-389C36F85647&displaylang=de

    Stimmt man kann nicht sehen, was drin ist, Du weißt ja was Du geladen hast!


    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    Donnerstag, 9. Juli 2009 13:28
    Moderator
  • Es ist ein guter Vorschlag die aktuellste Version zu installieren.

    Auf manchen Rechnern kann aber bereits eine 'geeignet aktuelle' Version installiert sein.
    Wenn ich also auf jedem Rechner, auf dem ich die Programme verwenden möchte, immer automatisch diese Datei installieren möchte, dann habe ich unter Umständen auch unnötige Installationen.

    Ich würde gern vorher wissen, ob die installierte Version aktueller ist oder nicht.


    Ich vermutete bislang, dass b25099274a207264182f8181add555d0 eindeutig die VC2005er Variante symbolisiert. Stimmt das etwa nicht?


    Viele Grüße,
    #50
    Donnerstag, 9. Juli 2009 13:44
  • Kann ich Dir nicht sagen ob diese ID VC2005 komplett beschreibt.

    1. Gibt es keine neuere als SP1, ein SP2 ist eher unwahrscheinlich.
    2. Wenn die version installiert ist, ist dask OK und es passiert nichts.
    3. Wenn die Version nicht installiert ist, ist es nur gut, das SP1 installiert wird!

    Wenn Du einen Installer baust, verwendet die Merge Module (msm Dateien) die mit VS2005 ausgeliefert werden. Das ist mit Sicherheit die beste und immer funktionierende Lösung.
    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    Donnerstag, 9. Juli 2009 13:53
    Moderator
  • Vielen Dank für Deine detaillierte Hilfe!

    Aufgrund folgender Beiträge glaube ich, dass b25099274a207264182f8181add555d0 die VC2005er Version der VCRedist_x86.exe symbolisiert:
    http://www.vistax64.com/vista-general/88060-how-do-i-uninstall-ms-c-redistributable.html
    http://www.archivum.info/microsoft.public.windows.vista.general/2007-11/msg10774.html

    eine Reaktion von jemanden, der es definitiv weiß, wäre in diesem Fall sehr hilfreich.



    Ich hatte Mal eine 'ältere' vcredist_x86.exe verwendet. Mit dieser konnte ich die Programme nicht korrekt ausführen.
    Es reicht also nicht aus, dass überhaupt eine Version installiert ist, sie muss gleichzeitig 'aktuell' genug sein.

    XP SP2 muss für den PC, auf dem die Programme laufen sollen, nicht vorhanden sein. Das möchte ich nicht näher kommentieren und in diesem Zusammenhang als Voraussetzung stehen lassen.


    Im Umgang mit Merge Module kenn ich mich zur Zeit überhaupt nicht aus. Das scheint eine interessante Herangehensweise zu sein.
    Ich würde zuvor gern eine Lösung finden, bei der ich nicht auf MergeModule angewiesen bin.



    Ich habe immer noch die Hoffnung, den Wert der registry verwenden zu können und anhand von "Display Version" zu entscheiden, ob eine 'für mich geeignete' Version der VCRedist_x86.exe installiert ist.


    Eine Bestätigung von 'offizieller' Seite wäre also ideal für mich! ;)




    Viele Grüße,
    #50
    Donnerstag, 9. Juli 2009 14:34
  • Leider fehlt mir immer noch die eindeutige Info, wie ich erkennen kann, dass eine installierte Version der VCRedist_x86.exe mit dem Produkt Code b25099274a207264182f8181add555d0 die Anforderungen erfüllt, welche ich an sie stelle!?

    Viele Grüße,
    #50
    Freitag, 10. Juli 2009 08:15
  • Das kann Dir niemand bestätigen, denn es ist IMHO der falsche Weg. Wenn die Komponenten per Merge Modul installiert sind, dann existiert dieser Schlüssel nicht!

    Ich würde eher versuchen die Komponenten die Du benötigst unter
    HKEY_LOCAL_MACHINE\COMPONENTS\CanonicalData\Deployments\
    zu finden. Diese haben alle einen eigenen Schlüssel beginnend mit microsoft.vc80.

    Such Dir zusammen was Du brauchst. Das geht allerdings nur für XP und später.

    Ich rate Dir: Ruf einfach vcredist_x86 in Deienr gewünschten Version auf! Die paar Sekunden für die Prüfung sind es nicht wert sich darüber Stunden den Kopf zu zerbrechen.

    Soll das ein Installer werden, oder was?


    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    Freitag, 10. Juli 2009 10:23
    Moderator
  • lässt sich dann VCRedist_x86.exe mit /SILENT oder ähnlichem aufrufen ?

    wenn ein neueres redistributable package installiert worden ist und ich das alte noch mal drüber laufen lasse, kann es Probleme geben ?


    Viele Grüße,
    #50
    Freitag, 10. Juli 2009 11:22
  • 1. Gegoglet hast Du vermutlich nicht nach "vcredist_x86 silent" dann wärst Du diekt hier gelandet:
    http://blogs.msdn.com/astebner/archive/2006/08/23/715755.aspx
    2. Ich habe doch schon erklärt, dass es sich hier um eine Side By Side Installation handelt. D.h. sie werden Seite an Seite im WinSxS installiert. Dein Programm nimmt die Version, die über das Manifest geregelt ist.


    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    Freitag, 10. Juli 2009 12:09
    Moderator
  • 1. Leider muss ich gestehen, dass ich dieses Mal nicht gegoolget habe! ;) Um den Weg des Vorschlags gehen zu können, benötige ich eine .msi Datei, welche ich zur Zeit nicht habe.
    Edit:
    bei weiterer Betrachtung Deines Bsp ist mir eine weiterer Kommentar aufgefallen, der mir geholfen hat.
    Ich glaube, dass ich nun das per Kommandozeile im SILENT modus aufrufen kann ... danke für die Hilfe !

    2. Das Du etwas zu "Side by Side" geschrieben hast, bestreite ich ja gar nicht! Bin da nur überhaupt nicht firm drin. Dachte immer das bedeutet, dass Windows alle notwendigen .dll Dateien in einen WinSxS Ordner speichert ...
    meinst Du damit, dass ich auch/nur dort suchen soll ?
    Edit: nach weiterer Recherche bin ich nun zum Schluß gekommen, dass mehrere unterschiedliche VCRedist_x86.exe Versionene nebeneinander (wegen Side by Side) installiert werden können. Würde ich gestern eine aktuelle Version installiert haben und heute eine Version von vor x Jahren, dann würden also beide sich nicht in die Wege kommen.
    Das mit dem Manifest habe ich noch nicht so ganz verstanden ... leider ... :(


    Hoffe meine Fragen sind nicht zu verwirrend/trivial?

    #50
    • Bearbeitet Raute50 Freitag, 10. Juli 2009 14:20
    Freitag, 10. Juli 2009 13:04
  • Korrekt Side by Side heißt dass mehrere Versionen vorhanden sein können und diese von Windows geladen wird über Manifeste.
    Manifeste sind kleine XML Schnippsel in der EXE oder als Datei neben der .manifest Datei. Diese Manifeste entscheiden welche DLL aus dem WinSxS geladen werden.
    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    Freitag, 10. Juli 2009 16:56
    Moderator