Anwendunsgkonfiguration



  • Hallo.

    Ich habe ein Zielsystem beim Kunden, auf welchem die von mir im Jahr 2010 compilierte/gelinkte Software problemlos (aber leider nicht fehlerfrei) an startet.

    Jetzt wollte ich mit einem Laptop einen Bugfix ins Zielsystem installieren. Und da gehen die Probleme los.

    Beim Anstarten der neu compilierten Software, bekomme ich im Zielsystem die Fehlermeldung, einer "nicht korrekten Anwendungskonfiguration".

    Leider lässt sich nicht so ohne weiteres die Ursache erkennen. Der dependencywalker gibt an, dass alle dlls vorhanden sind, aber auch der dependencywalker kritisiert eine falsche Konfiguration.

    DIe Software des Jahres 2010 läßt sich auf dem Laptop ausführen. Auch die neu kompilierte Software läßt sich auf dem Laptop ausführen. Nur im Zielsystem hat die Software 2011 Probleme.

    Hat irgendjemand eine Idee, was die Ursache sein könnte?

    (ich kann leider nicht garantieren, dass auf dem Laptop sich Softwaretechnisch nicht doch etwas im vergangenem Jahr getan hat. Ich habe schon .Net3.5 deinstalliert und auf .Net2.5 gedowngraded.

    Aso, ich arbeite mit VS2005. (und nein, eine neuere Version steht nicht zur Diskussion)

    Den einzigen wirklichen Unterschied den ich inzwischen sehe ist, das auf dem Zielsystem WinXp SP2 installiert ist und auf dem Laptop SP3. (und nein, ich kann im Zielsystem nicht so ohne weiteres auf SP3 umsteigen)



  • Auf dem Zielsystem ist eine alte Version der CRT installiert.
    Siehe auch Ereignisanzeige, da steht dies so drin...

    Du hast zwei Möglichkeiten:
    - Du sagst Deiner Applikation beim Compilieren, dass sie immer das RTM Manifest verwenden soll (siehe _BIND_TO_CURRENT_CRT_VERSION=0 und _BIND_TO_CURRENT_MFC_VERSION=0, http://blogs.msdn.com/b/vcblog/archive/2008/05/15/vc-runtime-binding.aspx)
    - Du installierst auf dem Zielsyytem min. die CRT-Version die auch auf Deinem Entwicklungsrechner installiert ist

    Die aktuelle Version ist vom 7.6.2011!

    http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=26347



  • Hast du auch das richtige VC 2005 Redistributable Package installiert? Also entweder das VC 2005 Original bzw. das für "Service Pack 1 (SP1)" (d.h. hast du evtl. bei dir auf deinem Rechner das SP1 für VC 2005 nachinstalliert gehabt?).



  • @Jochen: ich probiere es mal. hört sich gut an.
    @TH69: ja, habe ich.



  • @Jochen: muss ich dann die Compiler-Manifestdateien mit ins zielsystem legen?
    Funktioniert das auch mit VS2005. ich lese beim Weitergoogeln immer nur etwas von VS2008.

    ich probiere es aber trotzdem mal.



  • Es kann sein, dass dies bei VS2005 nicht geht... ich hab hier nur VS2008 zum testen...
    Das Manifest wird i.d.R. eingebettet...



  • Ich habe jetzt unter Präprozessor folgendes hinzugefügt

    _BIND_TO_CURRENT_VCLIBS_VERSION=0

    Ich hatte dazu folgendes Dokument noch gefunden
    http://www.nuonsoft.com/blog/2008/10/29/binding-to-the-most-recent-visual-studio-libraries/

    dort wird immer =1 gemacht.

    Du empfiehlst ja =0.

    Leider hat sich das Anstartverhalten nicht verändert. selbst mit vorhandener Manifestdatei startet die Software nicht an. 😞

    ...ich schaue mir mal den anderen Link an, mit dem Security update....



  • Schau doch in die Ereignisanzeige, dann siehst Du was genau schief geht...



  • ich habe jetzt das
    Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package MFC Security Update

    installiert. Es scheint jetzt zu gehen.

    Danke erstmal für die Hilfe.


Log in to reply