![]() |
DirectX-Forum - Beitragsübersicht - |
|
Thema | DX9: DirectX und Deployment |
Von |
Cheaterhater |
Datum |
10. Juni 2010 um 21:42:12 |
Frage |
Hallo, ich bins mal wieder...
Ich hatte vor ca. einer Woche ein Spiel fertig programmiert. Das Spiel benutzt die DirectX-Komponenten Direct3D, Direct3DX, DirectInput und DirectSound. Da ich das Spiel auch an andere Leute verteilen möchte, habe ich der Projektmappe ein Setup-Projekt hinzugefügt. Visual Studio hat alle Abhängigkeiten korrekt erkannt und kopiert neben der .exe-Datei noch folgende Dateien ins Ausgabeverzeichnis: Microsoft.DirectX.Direct3D.dll Microsoft.DirectX.Direct3DX.dll Microsoft.DirectX.DirectInput.dll Microsoft.DirectX.DirectSound.dll Microsoft.DirectX.dll Andere Assemblies, die benutzt werden, sind System, System.Drawing, System.Windows.Forms und System.XML.
Bei einigen Personen lässt sich das Programm nach der Installation problemlos ausführen, bei anderen jedoch nicht. Anzumerken ist, dass ich für das gleiche Programm früher eine ClickOnce-Installation gemacht hatte, die problemlos funktionierte (auch bei Leuten, bie denen die aktuelle Version nicht funktioniert). Bei den Menschen, bei denen das ganze nicht so wie vorgesehen funktioniert, gibt es beim Starten der .exe folgenden Fehler: System.IO.FileNotFoundException: Das angegebene Modul wurde nicht gefunden. (Ausnahme von HRESULT: 0x8007007E) bei Snyke.frmSnyke.frmSnyke_Load(Object sender, EventArgs e) bei System.Windows.Forms.Form.OnLoad(EventArgs e) bei System.Windows.Forms.Form.OnCreateControl() bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) bei System.Windows.Forms.Control.CreateControl() bei System.Windows.Forms.Control.WmShowWindow(Message& m) bei System.Windows.Forms.Control.WndProc(Message& m) bei System.Windows.Forms.ScrollableControl.WndProc(Message& m) bei System.Windows.Forms.ContainerControl.WndProc(Message& m) bei System.Windows.Forms.Form.WmShowWindow(Message& m) bei System.Windows.Forms.Form.WndProc(Message& m) bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Der Fehler tritt nicht in meinem Code auf, d. h. ich kann ihn nicht abfangen. Die Fehlermeldung ist auch nicht mit der Fehlermeldung, die erscheint, wenn eine Assembly fehlt, identisch. Da sieht der Fehlertext anders aus.
Nun ist also die Frage: Was mach ich da falsch? Wie habe ich mit DirectX umzugehen, damit das Programm nach der Installation korrekt funktioniert? Ich benutze das Visual Studio 2010 Professional, und auf allen Zielcomputern war DirectX 9.0c installiert. Diejenigen, bei denen das Programm anstandslos funktionierte, waen vornehmlich die Personen, die das Programm vorher schon einmal (mit der ClickOnce-Veröffentlichung) gehabt haben oder ebenfalls Visual Studio installiert haben.
Ich hoffe auf Antworten und bedanke mich im Voraus  |
|
Antwort: |
Von |
Nico |
E-Mail |
nico.schertler@gmx.de |
Datum |
14. Juni 2010 um 19:30:38 |
Antwort |
Hm... gute Frage. Ich habe selbst noch nicht mit dem VS 2010 gearbeitet. Wenn du glaubst, dass eine Neuinstallation was bringt, kannst du es ja versuchen. Ich würde das aber erstmal bezweifeln. Was du sonst noch ausprobieren könntest, ist ein kleines Log-System einzubauen. Also nach jedem (signifikanten) Schritt eine Zeile in eine txt-Datei schreiben. Beachte aber, dass nur etwas in die Datei geschrieben wird, wenn der Datenstrom wieder geschlossen wird. Notfalls kannst du die Datei bei jeder neuen Zeile öffnen und schließen. Das ist dann zwar performance-technisch nicht wirklich gut gelöst, soll ja auch nur zu Debugging-Zwecken sein. Interessant wird es wahrscheinlich, ob denn der Code vom Designer korrekt ausgeführt wird. Also am besten in die entsprechende Datei auch ein paar Zeilen schreiben. Dann siehst du erstmal, ob und bis wohin irgendwelcher Code ausgeführt wird und kannst das Problem eventuell eingrenzen.
Nico |
|
[ Antwort schreiben | Zurück zum DirectX-Forum | Forum-Hilfe ] |
|
Letzte Aktualisierung: Sonntag, 13. Dezember 2015 |
|