LabVIEWForum.de
dll in Ordner data - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: ActiveX & .Net (/Forum-ActiveX-Net)
+---- Thema: dll in Ordner data (/Thread-dll-in-Ordner-data)

Seiten: 1 2


dll in Ordner data - GT123 - 09.10.2019 12:34

Hallo,

gerne würde ich wissen, wie man eine dll in den /data Ordner der exe durch das builden bekommt. Eine dll welche direkt verwendet wird, kopiert es automatisch nach /data, aber wenn es weitere dll erfordert die nicht direkt der code sieht kann mann diese dll's nicht bei dem exe build in den /data Ordner platzieren.
Ich habe dies im installer hinzugefügt. Dann liegen die aber nicht in /data sonderen im root Verzeichnis eine Ebene höher.

Wie kann man solche dll's in /data bekommen?

Merci


RE: dll in Ordner data - jg - 09.10.2019 16:09

Füge die dll im LabVIEW-Projekt hinzu. Alle Dateien, die in der lvproj-Datei verlinkt sind, kannst du sowohl beim Exe-Build oder bei der Installer-Erstellung beliebigen Ziel-Verzeichnissen hinzufügen.

Gruß, Jens


RE: dll in Ordner data - GT123 - 10.10.2019 05:36

Zitat:beim Exe-Build oder bei der Installer-Erstellung beliebigen Ziel-Verzeichnissen hinzufügen
Wie macht man das? Ich versuche die dll's in den /data Ordner zu verlinken was jedoch nicht geht.


RE: dll in Ordner data - GerdW - 10.10.2019 06:56

Hallo GT,

vielleicht so:
[attachment=60418]
Die Datei "PST1 - ChangeLog.txt" ist bei den Quelldateien als "Immer enthalten" eingetragen. Im Bild siehst du dann, wie man den Zielort der Datei festlegen kann…


RE: dll in Ordner data - GT123 - 10.10.2019 08:34

Hallo GerdW,

bestens nun geht es. Ich hatte diese dll's nicht als "always included".

Vielen Dank und Grüsse


RE: dll in Ordner data - GT123 - 10.10.2019 09:15

Es gibt doch noch ein Problem, in der Runtime Umgebung findet die App die dll's nicht wenn diese im /data Ordner liegen. Sind diese hingegen im exe-root Verzeichnis dann geht es. Kann der /data Ordner irgendwie mit ins "Suchverzeichnis" der dll's eingebunden werden? Oder wie wird dies grundsätzlich umgesetzt?

Merci


RE: dll in Ordner data - GerdW - 10.10.2019 10:51

Hallo GT,

dazu findest du im NI-Forum einige Threads, in denen RolfK schon gute Erläuterungen zum Thema "Einbinden von DLLs" gibt.

Kernaussage: du musst die DLLs so installieren, wie sie von Windows (und den DLLs selbst) erwartet werden - und nicht so, wie du es gern hättest!
Gibt es für diese DLLs keinen ordentlichen separaten Installer?


RE: dll in Ordner data - GT123 - 10.10.2019 11:32

(10.10.2019 10:51 )GerdW schrieb:  Gibt es für diese DLLs keinen ordentlichen separaten Installer?
Nein gibt es nicht.
(10.10.2019 10:51 )GerdW schrieb:  Kernaussage: du musst die DLLs so installieren, wie sie von Windows (und den DLLs selbst) erwartet werden - und nicht so, wie du es gern hättest!
Also es funktioniert ja wenn es unter dem exe root Verzeichnis liegt, ich frage mich weshalb es unter "root"/data nicht gefunden wird? LV legt ja diese dll's extra dort ab.
Ich glaube nicht das es ein Problem von Windows ist.


RE: dll in Ordner data - GerdW - 10.10.2019 11:51

Hallo GT,

Zitat:Also es funktioniert ja wenn es unter dem exe root Verzeichnis liegt
Weil die DLLs und Windows zufälligerweise (?) auch im Verzeichnis deiner EXE nachschauen.

Zitat:ich frage mich weshalb es unter "root"/data nicht gefunden wird?
Weil das kein Standard-Suchort für fehlende DLLs ist…

Zitat:LV legt ja diese dll's extra dort ab.
Und sorgt dafür, dass die CLFN-Aufrufe in deiner EXE eben auch dort nach diesen DLLs suchen.

Zitat:Ich glaube nicht das es ein Problem von Windows ist.
Doch: wenn die von deinen CLFN aufgerufenen DLLs nun nach weiteren DLLs suchen, nutzen sie den Standard-Windows-Mechanismus dafür. Und der sucht eben nicht in irgendwelchen Unterordnern von irgendwelchen EXE-Ordnern!


RE: dll in Ordner data - jg - 10.10.2019 11:52

Zwischenfrage:
Handelt es sich um eine .NET-Assembly oder ein DLL, die du per "Call Library Function Node" aufrufst?

Hilft das hier weiter?
https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P81wSAC&l=de-DE

Gruß, Jens