Laden von .NET Framework-Assemblys
- Aktualisiert2025-08-27
- 3 Minute(n) Lesezeit
Wenn Sie vom Frontpanel oder Blockdiagramm eines VIs auf ein .NET-Objekt verweisen, müssen Sie dafür sorgen, dass LabVIEW die .NET-Assembly für das Objekt laden kann. Die Common Language Runtime (CLR) ortet die von Ihnen aufgerufenen .NET Framework-Assemblys. Weitere Informationen darüber, wie die CLR Assemblys sucht, erhalten Sie auf der Website Microsoft Developer Network (MSDN). Wenn die CLR eine Assembly nicht finden kann, sucht LabVIEW analog zur Suche nach fehlenden VIs nach der Assembly. LabVIEW sucht in dem Verzeichnis, das auf der Seite Pfade im Dialogfeld Optionen angegeben ist. Wenn LabVIEW die .NET-Assembly für ein .NET-Objekt, auf die vom Frontpanel oder Blockdiagramm aus verwiesen wird, nicht finden kann, erfolgt die Anzeige eines Ladezeitfehlers. Wenn LabVIEW eine während der Ausführung benötigte Assembly nicht finden kann, wird ein Laufzeitfehler angezeigt.
Die CLR verwendet das Verzeichnis mit der ausgeführten EXE-Datei als Standardsuchpfad, wenn sie private .NET-Assemblys lädt. Wenn Sie auf ein .NET-Objekt von einem VI aus verweisen, das zu keinem LabVIEW-Projekt gehört, betrachtet die CLR LabVIEW.exe als die ausgeführte Anwendung. Daher sucht die CLR in dem Verzeichnis nach privaten Assemblys, in dem sich die LabVIEW.exe-Datei befindet. Wenn Sie auf ein .NET-Objekt von einem VI aus verweisen, das zu einem LabVIEW-Projekt gehört, betrachtet die CLR das Projekt als die ausgeführte Anwendung. Die CLR sucht also im Projektverzeichnis nach privaten Assemblys. Wenn Sie von einem VI aus auf eine .NET-Assembly verweisen und die Assembly nicht zu .NET gehört, empfiehlt NI dringend, das VI in einem Projekt zu speichern, damit Sie keine Dateien in das Verzeichnis mit der Datei LabVIEW.exe einfügen müssen.
Wenn Sie eine .NET Framework-Assembly von einem VI aus aufrufen, das zu keinem Projekt gehört, können Sie die Assembly theoretisch im selben Verzeichnis speichern, in dem auch das aufrufende VI gespeichert ist. LabVIEW durchsucht bestimmte VI-Verzeichnisse (einschließlich Verzeichnis des aufrufenden VIs) nach Assemblys, die von der CLR nicht standardmäßig geladen werden können. Allerdings kann das Aufrufen von Assemblys im selben Verzeichnis zu Namenskonflikten und zu einer unerwarteten Funktionsweise von .NET Framework führen. Daher rät NI davon ab, Assemblys an diesem Speicherort zu speichern.
Erkennen von Änderungen an den Assemblys im Speicher
In den Speicher geladene Assemblys verbleiben dort bis zum Schließen der Anwendungsinstanz, mit der die Assembly geladen wurde. Solange sich eine Assembly im Speicher befindet, erkennt LabVIEW keine Änderungen an der dazugehörigen Datei auf der Festplatte. Sie müssen daher die Assembly im Speicher aktualisieren, damit Änderungen an der Assembly-Datei in LabVIEW übernommen werden.
Laden von VIs nach dem Ändern einer Assembly
In Microsoft Visual Studio .NET und anderen Entwicklungsumgebungen, die im .NET SDK bereitgestellt werden, können einer Assembly feste Namen zugewiesen werden. Assemblys mit dem gleichen festen Namen sind identisch.
Wenn Sie ein VI laden, in dem der Pfad zu einer .NET-Assembly, die Versionsnummer oder der Kultur-String einer signierten Assembly mit festem Namen geändert wurde, zeigt LabVIEW eine entsprechende Warnung an. In der Titelleiste des VIs und in der Liste der geöffneten VIs am Ende des Menüs Fenster wird dann ein Sternchen (*) angezeigt. Beim Speichern des VIs wird das Sternchen entfernt. Es erscheint erst wieder bei einer neuen Änderung.
Wenn Sie ein VI laden, das eine .NET Framework-Assembly mit verändertem Zeitstempel enthält, zeigt LabVIEW statt einer Warnung ein Sternchen in der Titelleiste des VIs an.
Weitere Informationen zum Auswählen und Laden bestimmter Versionen der .NET-Assemblys finden Sie in der KnowledgeBase auf ni.com.