INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Einbindung einer .NET dll-Kette in LV



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

02.03.2015, 14:44 (Dieser Beitrag wurde zuletzt bearbeitet: 02.03.2015 14:44 von rolfk.)
Beitrag #2

rolfk Offline
LVF-Guru
*****


Beiträge: 2.306
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Einbindung einer .NET dll-Kette in LV
(24.02.2015 19:54 )JEble schrieb:  Hallo allerseits,

ich möchte eine .NET dll in LV einbinden. Wie das geht, weiß ich, und es wäre ja auch gar kein Problem, wenn es nur diese eine dll geben würde. Aber leider hängt diese Haupt-dll wiederum von weiteren dlls ab. Alle diese dlls sind im selben Verzeichnis wie das LV vi. Doch bei der Ausführung der Constructor node in LV kommt es immer zu einer FileNotFound exception. Ich vermute das liegt daran, dass LV die Haupt-dll in einem anderen Kontext (Application Domain, Pfad, ...) ausführt, wo sie ihrerseits ihre Sub-dlls nicht findet. Die ganze dll-Kette kann ich jedoch problemlos aus dem Visual Studio (mit einer .NET-Test-App, die das vi ersetzt) starten. Es muss also an LV liegen. Meine Version von LV ist 2012. Hoffentlich weiß jemand einen Rat, denn ich komme hier nicht weiter. Auch die Verwendung eines LV-Projekts half nichts. Oder muss ich wirklich die .NET dll ihre Unter-dlls dynamisch mit Reflection laden lassen oder alle in einen monolitischen dll-Block reinhauen?

Gruß

Johannes

.Net hat grundsätzlich nur folgende Directories wo es nach .Net DLLs sucht:

1) Das Applicationsdirectory (dort wo das aufrufende Executable liegt)
2) Die GAC (Global Assembly Cache)

2) erfordert aber spezifisch dass eine .Net DLL "strongly named" ist, das heisst einen Namen und vollständigen Versionsnummer Eintrag in den assembly properties hat.

LabVIEW fügt zu diesen zwei Directories auch noch das Directory hinzu wo das Projektfile liegt.

Alles andere ist grundsätzlich nicht automatisch unterstützt und muss jeweils entweder von der Assembly selber expliziet getan werden oder von der Applikation die Du schreibst indem to entsprechende Directories in den .Net Pfad einfügst, aber das Letzte habe ich nie versucht und erscheint mir ohnehin ein Pfusch.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Nachrichten in diesem Thema
RE: Einbindung einer .NET dll-Kette in LV - rolfk - 02.03.2015 14:44

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Problematische Einbindung bei Migration von LV8.2 nach 2011 noo0715 4 5.916 14.03.2012 14:02
Letzter Beitrag: noo0715
  Einbindung NET Framework GT123 2 4.708 22.10.2009 09:56
Letzter Beitrag: GT123

Gehe zu: