Plötzlich nicht mehr funktionierende Binaries ohne Veränderung des Quellcodes
-
Hallo zusammen,
ich kämpfe seit ein paar Tagen mit einem Problem.
Ich schreibe seit einiger Zeit an einer Visual C++ .net Anwendung. Das hat bisher auch wunderbar funktioniert. Seit ein paar Tagen lassen sich neu kompilierte Versionen allerdings nicht mehr auf PCs ohne installierte IDE ausführen.
Es kommt die allseits bekannte Meldung "Die Anwendung konnte nicht gestartet werden weil die Anwendungskonfiguration nicht korrekt ist". Das deutet ja normalerweise auf eine nicht vorhandene Bibliothek oder auf nicht statische Verlinkungen hin. Auf PCs mit IDE (Win XP im Übrigen, dotnet 2.0) lassen sich die Dateien problemlos ausführen.
Das Problem tritt aber nicht nur bei meiner neuesten (unter Umständen modifizierten) Version auf, sondern auch, wenn ich versuche die Sicherungskopie des Projekts von letzter Woche erneut kompiliere - in dieser ist NICHTS verändert - weder Quelltext noch Projekteinstellungen.
Die Binaries von letzter Woche funktionieren aber nach wie vor reibungslos auf anderen PCs ohne IDE, ohne VC redistributable und ohne zusätliche DLLs.Die beiden erzeugten Binaries (neu und alt) haben die gleiche Dateigröße und vermissen laut Dependency Walker je zwei DLLs (WER.dll und die andere hab ich gerade nicht im Kopf). Dies scheint aber auch die alte Version in ihrer Lauffähigkeit nicht zu beeinträchtigen und daher auch nicht das Problem zu sein.
Neu und alt unterscheidet also aus meiner momentanen Sicht wirklich nur der Zeitpunkt der Kompilierung (bzw der zugehörige Systemszustand). Daher meine Vermutung, dass sich mir evtl ein Microsoft Update eingeschlichen hat und sich nun mein Compiler anders verhält? Kann das sein?
Ich habe auch schon alle Updates von Visual Studio vom System geschmissen. Das waren allerdings sowieso nur ATL Updates und das verwende ich nicht. Hat sich auch nichts geändert.Das einzige was ich in der Zwischenzeit (seit letzter Woche) bewusst auf meinem System getan habe, war an einer anderen Solution zu arbeiten und zu kompilieren. Könnte sich das evtl auf die Kompilereinstellungen ausgewirkt haben, obwohl ich da nichts umgestellt habe? Aber die Kompilereinstellungen sollten ja eigentlich nichts mit den Projekteinstellungen zu tun haben?
Dazu kommt noch, dass ich die Kopie von letzter Woche auch auf einem anderem System mit gleicher IDE und gleichem SDK kompiliert habe und dort exakt das gleiche Problem auftritt. Auch dieses System ist ein Win XP System mit vermutlich dem gleichen Updatestand.
Hat jemand irgendein Idee dazu? Ich bin mit meinem Latein langsam wirklich am Ende! Danke schon Mal!
Der W
-
Ach ja noch ein kleiner Nachtrag:
Es funktioniert auch nicht, wenn ich auf dem Zielclient das entsprechende VC redistributable Package installiere. Das war aber wie gesagt bei der alten Version auch nicht von Nöten und ist von daher wohl auch nicht die Ursache...
-
Falsches Forum: Anscheinend benutzt Du native C++ und kein .NET (sonst wäre die Installation des .NET Framework nötig).
-> Besser im MFC oder WinApi Forum.. hier gehts um C++/CLI.
Simon
-
Hi,
doch doch das ist schon C++/CLI und die dotnet-Installation auf den Clients ist auch nötig. Nur habe ich das nicht erwähnt, da das mittlerweile sowieso jeder XP-Rechner mit aktuellem SP installiert hat.
Oder beziehst Du dich auf das VC Redistributable? Das ist ja nur ne Visual-Laufzeitkomponente und nicht dotnet.W
-
Für mich hört sich das nach einer Debug-Version an (Was zwar nicht den Quellcode, wohl aber die Konfiguration - genauer die Auswahl welche verwendet wird - ändern würde).
-
Ja das war auch mein erster Gedanke. Aber ich verwende nach wie vor die Release-Settings...
-
Schau mal unter Suchen im Forum. Müsste unter meinem Benutzernamen noch nen passender Eintrag sein.
Das Problem ist, das deine IDE ne aktuellere Version bestimmter .net Module besitzt. Z.B. durch SP1 von VS2005 oder andere VS Updates. Eine Möglichkeit wäre das .Net Redistributable Pack. Hat bei mir aber nie geklappt. Besser und vor allem hundertprozentig klappts mit nem passenden Setup. Dafür musst du aber mindestens die standard Version haben. In dem Setup fügst du dann die für Anwendung Abhängigen Merge Module ein. Sobald du das Setup auf dem Zielrechner installierst, läufts!
-
Danke Dappeljuh, für die Antwort!
Das Problem ging ungefähr in die Richtung. Es lag aber letztendlich nicht an der .net-Umgebung, sondern tatsächlich an einem Microsoftupdate.
Allerdings nicht an irgendeinem Windowsupdate, sondern sage und schreibe an einem automatischen Updates des Kompilers (Visual Studio) selbst!! Da hat sich Microsoft mal wieder selbst ein riesengroßes Ei gelegt. Leider habe ich das erst herausgefunden, als ich schon mein halbes Windows demontiert hatte...Für alle Interessierten: Es handelt sich um das Update KB926748, welches sich "Microsoft Visual C++ 2005 Express Edition - ENU Service Pack 1" nennt.
Nach der Deinstallation laufen die Programme wieder auf den Zielclients. In der IDE hab ich dadurch bisher keine Einschränkungen festgestellt.
Gruß
Der W