VS 2008 Anwendung auf anderen Rechnern



  • Hallo Leute,
    ich verzweifel langsam. Ich habe eine QT Anwendung mit VS 2008 erstellt. Nun wollte ich sie auf anderen Rechnern starten, allerdings läuft sie nicht. Ich habe alle QT dll's kopiert und ein simples QT Testprogramm erstellt und probiert. Es läuft einwandfrei auf allen Rechnern. Nur meine etwas komplexere Hauptanwendung will nicht. Zuerst dachte ich es liegt an QT, allerdings läuft das Programm auf jedem Rechner auf dem nur VS 2008 installiert ist und kein QT. Also es läuft nur nicht auf Rechnern wo kein VS 2008 installiert ist.

    Was ich bisher probiert habe:
    - habe das Redistribution Pack von vs 2008 sowohl normal als auch in der SP1 Version installiert
    - das gesamte Projekt statisch gelinkt
    - alle, mit Dependency Walker gefundene, benötigte Dll's mit ins Programm Verzeichnis kopiert (msvcp90.dll, msvcr90.dll etc.)(schlußendlich sogar meinen kompletten IDE Ordner!)
    - und das alles sowohl als Release als auch Debug gemacht, sprich beides kompiliert und auch jede dll und lib als Debug beigepackt

    Das ist die Fehlermeldung die ich vom Dependency Walker bekomme:
    Error: The Side-by-Side configuration information for "d:\screwprofiler\SCREWPROFILER.EXE" contains errors. Diese Anwendung konnte nicht gestartet werden, weil die Anwenungskonfiguration nicht korrekt ist. Zur Problembehebung sollten Sie die Anwendung neu installieren (14001).
    Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.

    Es wird keine fehlende Datei mehr angezeigt!

    Wie gesagt sobald ich einen Rechner habe auf dem VS 2008 installiert ist, läuft das Ganze, QT ist nicht erforderlich. Nur auf Rechnern ohne VS 2008 bekomme ich dann besagt Fehlermeldung.

    Leider findet man dazu im Netz immer nur wage Lösungsvorschläge, die aber alle samt (nach langer Erarbeitungszeit) nicht funktioniert haben.

    Ich bitte um Hilfe. 😞



  • Schaue in das Ereignisprotokoll, da steht drin, was genau schief ging...



  • Meinst du damit das Ereignisprotkoll von Windows?

    Also unter Anwendung steht gar nichts, unter System gib es folgenden Fehler

    Ereignistyp: Fehler
    Ereignisquelle: SideBySide
    Ereigniskategorie: Keine
    Ereigniskennung: 59
    Datum: 24.02.2009
    Zeit: 10:27:18
    Benutzer: Nicht zutreffend
    Computer: SIMU4
    Beschreibung:
    Generate Activation Context ist für D:\ScrewProfiler\ScrewProfiler.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

    Damit kann ich allerdings gar nichts anfangen. Kannst da jmd mehr raus interpretieren?

    Edit:
    Stopp, da sind mehrere Fehler, habe ich erst gar nicht gesehen.

    Ereignistyp: Fehler
    Ereignisquelle: SideBySide
    Ereigniskategorie: Keine
    Ereigniskennung: 32
    Datum: 24.02.2009
    Zeit: 10:27:18
    Benutzer: Nicht zutreffend
    Computer: SIMU4
    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.

    Der ist auch noch aufgetreten. Jetzt sagt mir das zwar was, aber ich habe keine Ahnung wie ich dem entgegenwirken kann. Wieso will er im Release Modus eine Debug CRT haben?



  • Du solltest auch nicht die Debug-Version auf anderen Rechnern ausliefern sondern Release.
    VCRED. sind nur die Release-DLL.
    Das die Debug auf einem Rechner mit VS drauf sind funktioniert es da auch.



  • Ja schon klar. Aber ich habe ja auch die Release Version ausgeliefert. Also ich habe zumindest laut VS 2008 ne Release Version kompiliert und sie auch aus dem Release Ordner kopiert.

    Habe ich da was übersehen, gibts da ne existenzielle Einstellung die nicht automatisch vorgenommen wird?



  • Ok, ich habs gefunden. Bei den Release Einstellungen des Linkers war, warum auch immer, die qtmaind.lib verlinkt, also eine Debug Lib. Habe sie in die Release Version geändert und nu lüpts.

    Vielen Dank, dass hat mir die Woche gerettet. 🙂


Anmelden zum Antworten