Anwendungskonfiguration (mal wieder)



  • Hallo,

    ich habe eine Problem mit meiner "Anwendungskonfiguration"
    und bevor Ihr mich auf die übrigen Beiträge zu diesem Thema
    verweist, lest bitte erst mal den Bericht.

    Ich hab eine QT-Anwendung (4.5.3) die ich mit
    Visual Studio Professional Edition entwickele (alle Updates).

    Die Anwendung läuft auf meinem Entwicklungsrechner wie
    gewünscht. Ich habe in der Vergangenheit auch schon
    Anwendungen entwickelt, welche die Installation der
    VC redistributable erforderten.

    Starte ich die Anwendung auf dem Zielrechner erscheint
    die bekannte Meldung: "Anwendung kann nicht gestartet
    werden, weil die Anwendungskonfiguration nicht korrekt ist".

    Ich habe daraufhin den Dependencywalker darauf losgelassen.
    Er sagt, dass MSVCR90.dll fehlt. Nach der Installation des
    VC redist 2008 sagt er das aber immer noch. Es sieht so aus,
    als ob er die dll nicht findet.

    Was kann ich tun?

    Für Hinweise wäre ich dankbar

    Grüße

    DipplInsch


  • Mod

    Die Antwort lautet wie immer:
    1. Möglichkeit: Komplett statisch linken
    2. Möglichkeit: Runtime DLLs für VC installieren
    3. Möglichkeit: Local Assemblies verwenden und DLLs lokal installieren.
    http://blog.m-ri.de/index.php/2008/05/06/hotfix-fuer-usemsprivateassembliesh-und-vc-2008/

    Das wurde hier wirklich schon 1000mal diskutiert...



  • Danke schon mal für die Antwort:

    Zu 1.) Habe ich probiert aber es scheint so als ob die QT dlls auch die msvc*.dlls suchen und nicht finden.

    Zu 2.) Habe ich auch Probiert aber das Prog. hat sie nicht gefunden. Sonst hat das geklappt. Normalerweise liegt der Installer doch in:

    C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\vcredist_x86\vcredist_x86.exe

    oder?!

    Zu 3.) Werde ich mir anschauen

    Ich frag ja auch nur, weil es nicht startet obwohl die VCredist installiert ist.

    Grüße

    Martin Richter schrieb:

    Die Antwort lautet wie immer:
    1. Möglichkeit: Komplett statisch linken
    2. Möglichkeit: Runtime DLLs für VC installieren
    3. Möglichkeit: Local Assemblies verwenden und DLLs lokal installieren.
    http://blog.m-ri.de/index.php/2008/05/06/hotfix-fuer-usemsprivateassembliesh-und-vc-2008/

    Das wurde hier wirklich schon 1000mal diskutiert...


  • Mod

    Dann schau in den Eventlog und lies was für Probleme vorhanden sind!



  • Ich habe das Problem immer noch.

    Ich habe ein Dummy-Programm geschrieben (leeres QT Fenster).
    Das Programm blabla.exe läuft. Der Dependencywalker (DW) zeit auch an, dass er die Datei

    c:\windows\winsxs\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.218_x-ww_e1702eb6\MSVCR90.DLL

    lädt.

    Mein eigentlichen Programm MultiMini.exe benötigt diese Datei auch leider steht Im DW nur :

    MSVCR90.DLL mit einem gelben Fragezeichen davor.

    Wie kann das sein?

    Bin für jeden Tip dankbar.

    P.S. Kann man hier auch Bilder posten?


  • Mod

    Ich frage nochmal: Was steht im Eventlog?

    Ansonsten: Wie sieht Dein Manifest aus, dass in der EXE und in der DLL steckt?



  • Mein Eventlog zeit dies an:

    1. Meldung

    Ereignistyp: Fehler
    Ereignisquelle: SideBySide
    Ereigniskategorie: Keine
    Ereigniskennung: 32
    Datum: 04.02.2010
    Zeit: 15:00:06
    Benutzer: Nicht zutreffend
    Computer: WORK
    Beschreibung:
    Abhängige Assemblierung "Microsoft.VC90.DebugCRT" konnte nicht gefunden werden. "Last Error": Die referenzierte Assemblierung ist nicht auf dem Computer installiert.

    Weitere Informationen über die Hilfe- und Supportdienste erhalten Sie unter http://go.microsoft.com/fwlink/events.asp.

    2. Meldung

    Ereignistyp: Fehler
    Ereignisquelle: SideBySide
    Ereigniskategorie: Keine
    Ereigniskennung: 59
    Datum: 04.02.2010
    Zeit: 15:00:06
    Benutzer: Nicht zutreffend
    Computer: WORK
    Beschreibung:
    Resolve Partial Assembly ist für Microsoft.VC90.DebugCRT fehlgeschlagen. Referenzfehlermeldung: Die referenzierte Assemblierung ist nicht auf dem Computer installiert.
    .

    Weitere Informationen über die Hilfe- und Supportdienste erhalten Sie unter http://go.microsoft.com/fwlink/events.asp.

    3. Meldung

    Ereignistyp: Fehler
    Ereignisquelle: SideBySide
    Ereigniskategorie: Keine
    Ereigniskennung: 59
    Datum: 04.02.2010
    Zeit: 15:00:06
    Benutzer: Nicht zutreffend
    Computer: WORK
    Beschreibung:
    Generate Activation Context ist für z:\dokumente\MULTIMINI.EXE fehlgeschlagen. Referenzfehlermeldung: Der Vorgang wurde erfolgreich beendet.
    .

    Weitere Informationen über die Hilfe- und Supportdienste erhalten Sie unter http://go.microsoft.com/fwlink/events.asp.



  • Du darfst kein Debug ausliefern, sondern musst Release ausliefern! Und natürlich die CRT-Redistributable auf dem Zielrechner installieren...



  • Hmmm, du hast natürlich recht, aber sollte er dann nicht die Datei

    MSVCR90D.dll suchen?


  • Mod

    Tut er doch! Diese Datei ist Bestandteil des Assemblies "Microsoft.VC90.DebugCRT", das nicht gefunden wird.



  • Im Dependencywalker steht aber nur MSVCR90.DLL ???



  • Dependencywalker faq schrieb:

    When you first open a module in Dependency Walker, it only shows implicit, forwarded, and delay-load dependencies. Many dependencies are loaded dynamically and will not be detected until you profile the application from within Dependency Walker.

    ...also nicht wundern wenn er da weniger dlls anzeigt als die Anwendung tatsächlich benötigt.



  • Da die CRT in Vs2005/2008 mit *Manifesten* arbeitet, braucht er die installierten Manifeste und alle Dateien die in dem Manifest erwähnt sind....


Anmelden zum Antworten