Entwickler-Ecke
Sonstiges (.NET) - Problem ein C# Programm auf anderem PC installieren
butzki - So 07.09.08 13:38
Titel: Problem ein C# Programm auf anderem PC installieren
Hallo.
Ich bin noch ziemlich neu beim Programmieren dabei (knapp ein Jahr), jedoch macht es mir sehr viel Spaß.
Nun habe ich jedoch ein Problem. Ich habe mit Visual Studio 2008 und .net 3.5 ein 2D Spiel programmiert und es mittels dem SetupWizard Projekt "veröffentlicht". Installiere ich es auf meinem PC, funktioniert es wunderbar.
Nun habe ich es auf einem anderen Rechner installieren wollen, aber ich bekomme es einfach nicht zum Laufen. Nachdem ich es installiert habe und es starten wollte, hat es gesagt, es würde .net 3.5 benötigt. OK, also habe ich es runter geladen und auf dem PC installiert. Nun gibt es beim Start eine Fehlermeldung, dass eine FileNotFound exception aufgetreten ist.
Ich fand ziemlich schnell heraus, dass es sich hierbei um eine bestimmte Version der Microsoft.DirectX.Direct3DX.dll handelte, obwohl DirectX 9.0c auch auf dem Rechner installiert war. Also habe ich die DirectX dlls, auf die mein Programm verweist ebenfalls in das Setup mit aufgenommen und bei der Installation ins GAC schieben lassen.
Doch ich kann das Spiel immer noch nicht starten. Ich habe alle Ressources (als ApplicationStartupPath + Ordnername hardcodiert) dabei, aber trotzdem kommt nach wie vor eine Exception. Kann es sein, dass auf dem PC bestimmte .net Bibliotheken fehlen?
Ich bin am verzweifeln. :/
Ich habe jetzt versucht, auf einer VM mit Vista zu installieren und dort hat er nach dem Install automatisch das .net 3.5 heruntergeladen. Beim Start kommt dann die Meldung, dass das programm gestoppt wurde.
Hat jemand evtl. einen Rat für mich, was ich falsch mache bzw. was ich anders machen kann?
Gruß,
Butzki
butzki - Di 09.09.08 18:09
Huhu.
Sorry für die späte Antwort, aber ich hatte gestern keine Zeit, die genaue Fehlermeldung zu dokumentieren.
Also erstmal zu den Ressources - das sind BMPs und WAVs, die in dem Spiel verwendet werden. Ich habe nun auch versucht, das Programm "neu" auf dem Rechner zu schreiben, wo das Problem aufgetreten ist und konnte somit einen Screenshot von der Fehlermeldung machen, die dabei aufgetreten ist. Sie lautet:
"Das angegebene Modul wurde nicht gefunden. (Ausnahme von HRESULT: 0x8007007E)"
Sie tritt dann auf, wenn ich die Methode "InitializeGraphics();" aufrufen möchte.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| static void Initialize() { m_GameWindow = new GameWindow(); m_GameWindow.ClientSize = m_Resolution;
[b]InitializeGraphics();[/b] InitializeInput(); InitializeSound();
m_GameWindow.Show(); }
static void InitializeGraphics() { PresentParameters presentParams = new PresentParameters(); presentParams.Windowed = true; presentParams.SwapEffect = SwapEffect.Discard; presentParams.PresentationInterval = PresentInterval.One;
dGDevice = new DGDevice(0, Microsoft.DirectX.Direct3D.DeviceType.Hardware, m_GameWindow, CreateFlags.SoftwareVertexProcessing, presentParams);
dGDevice.RenderState.ReferenceAlpha = 0; dGDevice.RenderState.AlphaFunction = Compare.NotEqual;
[b]DXSprite = new D3DSprite(Game.Device);[/b] } |
Was mir dabei überhaupt nicht einleuchtet ist, dass er nicht einmal in die Methode springt. Kommentiere ich nun jedoch die Zeile:
DXSprite = new D3DSprite(Game.Device);
in der aufzurufenden Methode auf, springt er in die Methode und gibt erst später wieder eine Fehlermeldung, vermutlich, wenn er die DXDprite verwenden möchte.
Ich weiß nicht, woran es liegen kann. Ist es eher ein .net, ein DirectX oder ganz ein anderes Problem?
Gruß,
Butzki
Moderiert von
Kha: Highlight- durch C#-Tags ersetzt
Kha - Di 09.09.08 20:58
Wahrscheinlich wird eine unmanaged DX-Dll nicht gefunden. Versuche es also einmal mit dem DX-Update.
butzki - Mi 10.09.08 20:06
Hallo.
Ja, das war es auch. Ich habe heute, bevor ich die Antwort gelesen habe, das DX Pack auf dem Rechner installiert und siehe da, nun funktioniert es.
Ich hätte mich also nicht auf die dxdiag Aussage verlassen sollen, dass DX9.0c installiert ist. ;)
Vielen Dank trotzdem!!!
Gruß,
Butzki :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!