Konnte nicht geladen, Datei oder assembly X-oder eine seiner Abhängigkeiten. ist keine gültige Win32-Anwendung. (HRESULT: 0x800700C1)
Betriebssystem: Windows 8.1 64
Habe ich versucht zu spielen mehrere sounds in VB.Net mit DirectX, es gibt keine Fehler in meinem code.
Das problem ist, wenn das Ereignis ausgelöst wird, bekomme ich diesen Fehler
System.BadImageFormatException wurde nicht behandelte Meldung: Eine nicht behandelte
Ausnahme des Typs " System.BadImageFormatException " ist in
System.Windows.Forms.dll Zusätzliche Informationen: Konnte nicht geladen, Datei
oder assembly "Microsoft.DirectX.AudioVideoPlayback.dll" oder eine seiner
Abhängigkeiten. ist keine gültige Win32-Anwendung. (Ausnahme von
HRESULT: 0x800700C1)
Dann setze ich Ziel-CPU auf x86-und ich habe diesen Fehler
System.IO.FileLoadException wurde nicht behandelte Meldung: Eine nicht behandelte
Ausnahme des Typs " System.IO.FileLoadException' occurred in
System.Windows.Forms.dll Zusätzliche Informationen: die assembly im Gemischten Modus
gebaut wird mit version 'v1.1.4322' der Laufzeit und kann nicht sein
geladen wird in der 4.0-Laufzeit ohne zusätzliche Konfiguration
Informationen.
Bisher habe ich versucht zu deinstallieren-Neuinstallation von DirectX SDK Installieren das hat alles zu tun mit DirectX und anderen sound-Dateien (.wav).
Auch ich hatte, zu durchsuchen, zu laden .dlls, ich konnte Sie nicht finden unter der Referenz-Manager - >Baugruppen, aber jetzt ich kann nicht einmal laden Sie über durchsuchen also ich benutze Imports Microsoft.DirectX.AudioVideoPlayback
Es wird lassen Sie mir Importieren Sie den rest .dlls, außer(Reference Manager, nicht einmal, Sie zu öffnen):
Microsoft.DirectX.AudioVideoPlayback.dll
Microsoft.DirectX.dll
Microsoft.DirectX.DirectSound.dll
diejenigen, die ich brauche. Gibt es eine Möglichkeit, sauber re-installieren?
Zielframework: .Net Framework 4.5
CODE:
Dim MySound1 As New Microsoft.DirectX.AudioVideoPlayback.Audio("D:\path\sound_file.mp3")
MySound1.Play()
Lassen Sie mich wissen, wenn Sie brauchen, um wissen etwas anderes.
UPDATE:
Ich habe die Target Framework
zu .Net Framework 3.5
und es funktioniert gut, aber nur, wenn die CPU Target
eingestellt ist x86
! Warum ist das so?
BadImageFormatException
ist in der Regel eine 32-bit - /64-bit-Problem. Sind die DirectX-Bibliotheken, die Sie verweisen, die die gleiche Bitanzahl hat wie Ihre Anwendung?Habe versucht ein .wav-Datei-hat nicht funktioniert. Ich Ziel-CPU auf x86-und jetzt bekomme ich diesen Fehler: "System.IO.FileLoadException wurde nicht behandelte Meldung: Eine nicht behandelte Ausnahme des Typs 'System.IO.FileLoadException' occurred in System.Windows.Forms.dll Zusätzliche Informationen: Mixed-mode-Baugruppe eingebaut ist, die mit version 'v1.1.4322' der Laufzeit und kann nicht geladen werden in der 4.0-Laufzeit - >ohne zusätzliche Konfigurations-Informationen."
Ich habe die
Target Framework
zu .Net Framework 3.5
und es funktioniert gut, aber nur, wenn die CPU Target
eingestellt ist x86
! Warum ist das so?Siehe dieser post für details über den status und die Grenzen des legacy-Managed DirectX 1.1 Baugruppen.
InformationsquelleAutor 21CmOfPain | 2014-10-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie mit den alten Managed DirectX - Wrapper. Gezielte zu laufen .NET 1.1, framework-version, die nie unterstützt 64-bit-code. Diese Wrapper sind veraltet vor langer Zeit, die 2.0-version schafften es nie aus der beta.
Ändern Sie Ihre EXE Plattform Ziel auf x 86 ist erforderlich, es gibt keine 64-bit-version von " Managed DirectX und die DLLs enthalten, die systemeigene 32-bit-code in Verwaltetem C++ geschrieben. Darüber hinaus, wenn Sie als Ziel .NET 4.0 oder höher, dann müssen Sie verwenden ein .config-Datei, die sagt, dass es okay ist, laden eine alte Montage, die erwartet, dass nativer code ausgeführt werden, gut auf .NET 1.1. Es sollte wie folgt Aussehen:
Den useLegacyV2RuntimeActivationPolicy Attribut unterdrückt die Fehlermeldung, die Sie bekam. Ob es kann tatsächlich laufen auf 4.0+ ist das nicht, klar, niemand nutzt diese Wrapper nicht mehr. Der übliche Rat ist die Umstellung auf SharpDX oder SlimDX statt.
InformationsquelleAutor Hans Passant