LabVIEWForum.de - [erledigt] Fehler beim laden der Assembly

LabVIEWForum.de

Normale Version: [erledigt] Fehler beim laden der Assembly
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich bin gerade dabei ein .NET-Software mit Zugriff auf Webcamzugriff zu schreiben. Diese soll dann später in ein LabVIEW-Projekt eingebunden werden.
Ich habe jetzt mal Testweise versucht die Software in LabVIEW einzubinden. Leider bekomme ich in dem Dialog nur die Meldung:
Beim Laden der Assembly trat ein Fehler auf.O

Ein 2tes kleine Programm mit einer einfachen WindowsForm funktionierte sofort.
Hatte sowas schon mal jemand, bzw. weiß auf was ich achten muss wenn ich ein eigenes Programm in LabVIEW einbinden möchte?

Verwendet wird LabVIEW 8.1 und Visual C++ 2008 Express.

MfG
Marco
:profil:LabVIEW 8.1 gibt es nicht.

Kannst Du mal Dein VI hochladen?

Gruß Markus
Oups hast recht hab nicht 8.1 sondern 8.6 Rolleyes

Hab dir mal die beiden Progarmme und das Vi gezippt.
Wirst aber nicht viel sehen, ist nur ein .NET-Container ohne Komponente :/

Das Progarmm DShow.VC.exe läuft noch äusserst unstabil, noch ganz frühes Entwicklungsstadium. Wenn auf dem Rechner keine Webcam installiert ist stürzt es evtl sofort ab.
In der Entwicklungsumgebung von Microsoft läuft es aber bereits.

MfG
Marco
[attachment=16732]
Den VI Upload hätte man sich tatsächlich sparen können.

Kann es sein, dass dein VC++ Programm einige DLLs verwendet, die du im VisualStudio zwar eingebunden hast, die aber im LabVIEW-Betrieb einfach nicht auffindbar sind? Ich kenne mich da nicht so genau aus aber wenn du sagst, dass ein einfaches Programm gut läuft, müssen es ja irgendwie die UNEINFACHEN Dinge sein, die es blockieren.

LG
Torsten
' schrieb:Den VI Upload hätte man sich tatsächlich sparen können.

Kann es sein, dass dein VC++ Programm einige DLLs verwendet, die du im VisualStudio zwar eingebunden hast, die aber im LabVIEW-Betrieb einfach nicht auffindbar sind? Ich kenne mich da nicht so genau aus aber wenn du sagst, dass ein einfaches Programm gut läuft, müssen es ja irgendwie die UNEINFACHEN Dinge sein, die es blockieren.

LG
Torsten

Hmm Ok das kann sein, ich verwende die DLL's von Emgu.CV, hatte sie aber mit der exe und dem VI zusammen in ein Verzeichniss gepackt. Kann es sein das LabVIEW dort nicht nach DLL's sucht?

Wo müsste ich sie hinpacken, das LabVIEW sie auf jedenfall finden, system32 ?
Die Emgu.CV-DLL's selbst lassen sich übrigens in LabVIEW eibinden.

MfG
Marco
' schrieb:Leider bekomme ich in dem Dialog nur die Meldung:
Beim Laden der Assembly trat ein Fehler auf.O

Löst zwar das Problem nicht, aber trotzdem LabVIEW 8.6 Bug Fixes

Zitat:53626 4HEC2D00 Failure to load .NET assemblies produces unhelpful error message that makes debugging difficult.
' schrieb:Hmm Ok das kann sein, ich verwende die DLL's von Emgu.CV, hatte sie aber mit der exe und dem VI zusammen in ein Verzeichniss gepackt. Kann es sein das LabVIEW dort nicht nach DLL's sucht?

Wo müsste ich sie hinpacken, das LabVIEW sie auf jedenfall finden, system32 ?
Die Emgu.CV-DLL's selbst lassen sich übrigens in LabVIEW eibinden.

MfG
Marco

LabVIEW sucht gar nicht nach DLLs ausser der die Du direkt selber in ein VI einbindest. Alles andere tut Windows und da hat LabVIEW sehr wenig Einfluss drauf. Zwar scheint LabVIEW in neueren Versionen Windows auch das Projektdirectory (also dort wo Dein xyx.lvproj file ist) als zu durchsuchendes Directory unterschmuggeln zu versuchen. Aber ob das so stimmt weiss ich nicht und es ist auch etwas was Microsoft eigentlich abrät zu tun.
Windows selber sucht für .Net DLLs normalerweise nur im Verzeichnis des aktuellen Prozesses selber (in der LabVIEW IDE ist das dort wo LabVIEW.exe liegt) und im Global Assembly Cache (GAC).

Rolf Kalbermatter
' schrieb:LabVIEW sucht gar nicht nach DLLs ausser der die Du direkt selber in ein VI einbindest. Alles andere tut Windows und da hat LabVIEW sehr wenig Einfluss drauf. Zwar scheint LabVIEW in neueren Versionen Windows auch das Projektdirectory (also dort wo Dein xyx.lvproj file ist) als zu durchsuchendes Directory unterschmuggeln zu versuchen. Aber ob das so stimmt weiss ich nicht und es ist auch etwas was Microsoft eigentlich abrät zu tun.
Windows selber sucht für .Net DLLs normalerweise nur im Verzeichnis des aktuellen Prozesses selber (in der LabVIEW IDE ist das dort wo LabVIEW.exe liegt) und im Global Assembly Cache (GAC).

Rolf Kalbermatter

Mit den DLL's hat es nichts zu tun, ich habe mittlerweile herausgefunden das VC++ 2008 Assemblys mit der Option /clr:pure compiliert werden müssen.

MfG
Marco
Hallo,
ich habe hier leider ein ähnliches Problem. Ich binde ein selbstgeschriebenes Assembly ein, welches am Freitag auf dem PC noch funktionierte. nach einem Neustart heute früh meldet mir LabVIEW einen "Fehler beim Laden des assemblys". In der Eventübersicht meldet sich auch das COM+ Modul mit einer Warnung. Hab aber keine Ahnung was das genau bedeutet. Hat jemand vielleicht eine Idee warum LabVIEW auf einmal nicht mehr das assembly öffnen kann? Alle anderen Assembly lassen sich einwandfrei öffnen und "bedienen".

P.S. Die NI-Hotline scheint damit leider auch überfordert...
' schrieb:Hallo,
ich habe hier leider ein ähnliches Problem. Ich binde ein selbstgeschriebenes Assembly ein, welches am Freitag auf dem PC noch funktionierte. nach einem Neustart heute früh meldet mir LabVIEW einen "Fehler beim Laden des assemblys". In der Eventübersicht meldet sich auch das COM+ Modul mit einer Warnung. Hab aber keine Ahnung was das genau bedeutet. Hat jemand vielleicht eine Idee warum LabVIEW auf einmal nicht mehr das assembly öffnen kann? Alle anderen Assembly lassen sich einwandfrei öffnen und "bedienen".

P.S. Die NI-Hotline scheint damit leider auch überfordert...

NI kann Dir dabei auch kaum helfen. Selbstgeschriebene Assemblies sind doch echt etwas das man mit Visual C# macht und da wäre allenfalls Microsofts Support zuständig, nur ist es da etwas schwierig irgendwo einfach anzurufen. Zuerst musst Du versuchen eine Assembly in einem selbstgeschriebenen Programm zu laden.

COM module können überall auf der HD sein, müssen aber registriert sein um Windows sie finden zu lassen. Assemblies dagegen müssen im Applikationsdirectory oder im Global Assembly Cache lokalisiert sein um sie durch Windows finden zu lassen. In der LabVIEW Entwickelumgebung kommt dabei noch das Projektdirectory hinzu. Alles andere is nur mit wesentlichem Programmieraufwand von Dir selber zu tun.
Referenz-URLs