Fehler beim ausführen eines Programms bei anderen
-
Hallo,
ich hab dieses Spiel geschrieben und bei mir klapt es auch ohne Probleme, aber beim verteilen unter bekannten hab ich nur gehört das es dort nicht funktioniert und das sie solche Fehlermeldungen bekommen haben:
Diese Anwendung konnte nicht gestartet werden weil die Anwendungskonfiguration nicht korrekt ist
diese Anwendung konnte nicht gestartet werden , da die side by side Konfiguration ungültig ist.
http://bloggy.bplaced.net/ZeroBloggy.rar
den Level Editor hab ich mit VS 2008 mit VB.NET Gemacht und das Spiel auch in VS 2008 mit HGE in C++.
Bei allen Funktioniert der Editor aber das Game nicht.
Ich weiß das man für VS 2008 mit VB.NET das .NET Framework 3.5 brauch aber auch nach dieser Installation soll der Fehler kommen.
-
Ist die Microsoft visual c++ runtime installiert? Wenn nicht, dann solltest du das nachholen oder statisch gegen die Bibliothek linken.
-
Es sollte reichen, wenn du die folgenden MSVC++-Dateien in dem Verzeichnis der Anwendung mitlieferst:
- msvcm90.dll
- msvcp90.dll
- msvcr90.dll
- Microsoft.VC90.CRT.manifest
Ist zwar nicht sehr schön, aber meiner Meinung nach immer noch besser, als den Benutzer zu einer Installation zu zwingen.
-
-
@David_pb ich hab den Leuten gesagt die sollen visual c++ runtime installieren aber immer noch der selbe Fehler und wenn ich die Laufzeitbibliothek von Multithreaded-DLL (/MD) auf Multithreaded-Debug (/MTd) Stelle bekomme ich nur Fehler.
-
Nexus schrieb:
Es sollte reichen, wenn du die folgenden MSVC++-Dateien in dem Verzeichnis der Anwendung mitlieferst:
- msvcm90.dll
- msvcp90.dll
- msvcr90.dll
- Microsoft.VC90.CRT.manifest
Ist zwar nicht sehr schön, aber meiner Meinung nach immer noch besser, als den Benutzer zu einer Installation zu zwingen.
Stimmt, das ist nicht sehr schön. Aber immernoch attraktiver, als die Alternativen. Am unschönsten finde ich die Idee von MS, mit diesen DLLs überhaupt solch einen Zirkus zu veranstalten. DLL-Hölle hin oder her

Stefan.
-
Zerod schrieb:
@David_pb ich hab den Leuten gesagt die sollen visual c++ runtime installieren aber immer noch der selbe Fehler und wenn ich die Laufzeitbibliothek von Multithreaded-DLL (/MD) auf Multithreaded-Debug (/MTd) Stelle bekomme ich nur Fehler.
1. Haben sie die richtige Runtime installiert? Und über den richtigen Installer? Das Zeug muss nämlich ganz speziell abgelegt werden.
2. Du musst /MD auf /MT umstellen und /MDd auf /MTd. Zudem müssen die dazugelinkten Bibliothek genau gleich mit der MSVC Bibliothek verlinkt sein.DStefan schrieb:
Am unschönsten finde ich die Idee von MS, mit diesen DLLs überhaupt solch einen Zirkus zu veranstalten.
Was für einen Zirkus?

Grüssli
-
Dravere schrieb:
DStefan schrieb:
Am unschönsten finde ich die Idee von MS, mit diesen DLLs überhaupt solch einen Zirkus zu veranstalten.
Was für einen Zirkus?

Grüssli
Das Programm startet nicht, wenn die bewussten DLLs und das Manifest nicht entweder installiert wurden oder, wie von Nexus beschrieben genau im Ordner der Applikation liegen. Ein Fundort über PATH genügt nicht.
Zudem ist der zweite Weg nicht von MS selbst dokumentiert. Zumindest wars das nicht zu der Zeit, als ich darüber gestolpert bin. Geschweige denn, dass es einen Weg gäbe, das beim Bauen abzuschalten. Sowas nenne ich Zirkus. Ich mag's einfach nicht, auf diese Weise gegängelt zu werden.
Stefan.
-
@DStefan,
Microsoft macht da aber keinen Zirkus draus. Es ist ganz klar beschrieben und es ist auch ganz klar, worum es geht. Ich verstehe auch nicht, wieso es dich überhaupt stört. Heutzutag haben die meistens schon das Redistributable Paket installiert und wenn nicht, schadet es absolut gar nicht, denn früher oder später werden sie es so oder so brauchen.Du kommst mir vor wie die Leute, welche sich weigern in die Anwendungsdaten Einstellungen zu schreiben. Das System ist nunmal so aufgebaut! Und es ist nicht mal etwas schlechtes...
Wo siehst du hier also konkret einen Zirkus? Wo siehst du hier irgendwelche Nachteile? Was stört dich daran?

Ich kann das nicht nachvollziehen, da ich weder einen Zirkus noch Nachteile sehe.Grüssli
-
hab jetzt mal eine Virtuelle Test Partition aufgesetzt und hab dort .NET Framework 3.5 und visual c++ runtime 2008 installiere und bekomme das Spiel dort nicht zum laufen.
-
Hast du zufällig die Debug Version verschickt? Geht nicht weil in den Redists nur die Release DLL's vorhanden sind.
-
Nun, das Meisten von dem, was mich stört, habe ich ja schon gesagt. Ich empfinde es als Gängelung, die bewussten DLLs installieren zu müssen. Dass die meisten Leute die Redistributables installiert haben, ist für mich kein Argument. Wenn man Software verteilt und sicherstellen möchte, dass sie auch funktioniert, muss man davon ausgehen, dass dies nicht der Fall ist.
Vielleicht findest du diese Einstellung seltsam (oder so), aber ich möchte nicht Software installieren müssen. Und ich vermeide dies bei meiner Software soweit es geht. Ich möchte Dateien kopieren, vielleicht PATH anpassen und Schluss! Meine Idealvorstellung ist ein Computer, bei dem man z.B. das OS neu installieren kann und alle auf dem Rechner befindliche Software läuft problemlos. Oder bei dem man Software einfach ins Netz legt, den Leuten Zugriff darauf gewährt und die Sache läuft. In diese Richtung gehen meine Vorstellungen.
Und genauso wichtig ist es mir, dass man Software schnell und einfach wieder loswerden kann. Man löscht Dateien und ist fertig. Dieses Ziel finde ich sehr erstrebenswert.
Dravere schrieb:
Du kommst mir vor wie die Leute, welche sich weigern in die Anwendungsdaten Einstellungen zu schreiben. Das System ist nunmal so aufgebaut! Und es ist nicht mal etwas schlechtes...
Den ersten Satz verstehe ich nicht. Meinst du Anwendungsdaten in die Registry schreiben? Falls ja, hast du Recht. Die Registry ist ein guter Platz für systemweite Einstellungen und vielleicht solche, die das System selbst vornimmt. Anwendungsdaten gehören meines Erachtens nicht dorthin. Und damit ich sowas programmiere, musst du mir schon eine Pistolen an den Kopf halten

Klar, das System ist halt so und du hast Recht, es ist nicht das schlechteste. Aber man muss sich ja nicht mit allem abfinden, oder? Der Zwang, Software zu installieren ist für mich etwas, mit dem ich mich nicht abfinden möchte.
Stefan.
-
DStefan schrieb:
Den ersten Satz verstehe ich nicht. Meinst du Anwendungsdaten in die Registry schreiben?
Nein, ich meine die Anwendungdaten oder auf Englisch Application Data. Das ist ein Ordner, welcher sich zum Beispiel unter XP an folgender Stelle befindet (versteckt):
C:\Dokumente und Einstellungen\<username>\AnwendungsdatenDort kommen die Einstellungen des Programmes für den jeweiligen User rein.
DStefan schrieb:
Der Zwang, Software zu installieren ist für mich etwas, mit dem ich mich nicht abfinden möchte.
Das ist nett für kleine Programme für grössere allerdings völlig utopisch.
Zudem bin ich eher ein Befürworter von Setups. Für einen DAU sind sie nämlich deutlich einfacher zu bedienen, als dass er ein Readme öffnen muss, um darin zu lesen und vor allem verstehen, wie er nun die Software aufzusetzen hat. Ein Programm ohne Setup ist in meinen Augen ziemlich unprofessionell oder dann eben irgendetwas kleines, was nur aus einer einzigen*.exebesteht. Software ohne Setups neigen oft auch dazu, dass sie irgendwo Daten hinschreiben, welche beim Löschen des Programmordners nicht mitgelöscht werden. Ein Setup garantiert bis zu einem gewissen Grad ein sauberes Aufräumen. Der Grad ist jedenfalls sicher höher, als bei einem Programm ohne Setup.Zerod schrieb:
hab jetzt mal eine Virtuelle Test Partition aufgesetzt und hab dort .NET Framework 3.5 und visual c++ runtime 2008 installiere und bekomme das Spiel dort nicht zum laufen.
Kannst du uns die genaue Fehlerbeschreibung geben? Was steht in der Fehlermeldung?
Ansonsten sei noch auf dieses nette Programm verwiesen:
http://www.dependencywalker.com/Grüssli