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 

DLL mit niedrigerer Versionsnummer einbinden



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!

30.10.2008, 15:03
Beitrag #1

Stef Offline
LVF-Grünschnabel
*


Beiträge: 31
Registriert seit: Sep 2008

8.6 EN / TS 4.1.1
2008
kA

89xxx
Deutschland
DLL mit niedrigerer Versionsnummer einbinden
Hallo @ all

Mit Hilfe des Constructor Node binde ich eine DLL ein, die mir die Kommunikation mit den verschiedenen Datenbanken abnimmt und den .NET Datentyp "Datatable" umwandelt.
Wenn ich z.B. mit Version 1.0.3.0 arbeite und nun eine ältere DLL (V.1.0.1.0) einbinden möchte bekomme ich immer die Meldung, dass die neuere Version verwendet wird. Schließe ich LabVIEW komplett, dann kann ich wieder die ältere DLL verwenden.
Gibt es eine Einstellungsmöglichkeit, die die Abfrage der Versionsnummer ausschaltet, damit ich nicht immer die Entwicklungsumgebung schließen muss?

Im Anhang ist ein Bild der Meldung.
Danke für eure Antworten.

Gruß
Stefan


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
05.11.2008, 08:12
Beitrag #2

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
DLL mit niedrigerer Versionsnummer einbinden
' schrieb:Hallo @ all

Mit Hilfe des Constructor Node binde ich eine DLL ein, die mir die Kommunikation mit den verschiedenen Datenbanken abnimmt und den .NET Datentyp "Datatable" umwandelt.
Wenn ich z.B. mit Version 1.0.3.0 arbeite und nun eine ältere DLL (V.1.0.1.0) einbinden möchte bekomme ich immer die Meldung, dass die neuere Version verwendet wird. Schließe ich LabVIEW komplett, dann kann ich wieder die ältere DLL verwenden.
Gibt es eine Einstellungsmöglichkeit, die die Abfrage der Versionsnummer ausschaltet, damit ich nicht immer die Entwicklungsumgebung schließen muss?

Im Anhang ist ein Bild der Meldung.
Danke für eure Antworten.

Gruß
Stefan

Das ist Windows selber. LabVIEW macht denke ich mal keine Versionschecks. Das Problem kommt daher das die DLL schon im Speicher liegt und wenn Du dann die alte Version laden willst merkt Windows das und linkt anstelle davon zu der bereits im Speicher vorhandenen. Solange Du also schon ein VI geladen hast das von der selben DLL Gebrauch macht ist da nichts zu machen. Ansonsten kommen zwei mögliche Dinge ins Spiel. LabVIEW macht zumindest bei herkömmlichen DLLs (nicht sicher ob das bei .Net auch so ist) dass eine einmal geladene DLL im Speicher bleibt bis das letzte VI das sie anspricht völlig ausgeladen wurde.
Die andere Ursache ist wahrscheinlich ein Caching von Windows selber für .Net DLLs per Prozess. In dem Falle hilft tatsächlich nur noch das Abschliessen des Prozesses, sprich der Applikation.

Rolf Kalbermatter

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
06.01.2009, 10:07
Beitrag #3

Stef Offline
LVF-Grünschnabel
*


Beiträge: 31
Registriert seit: Sep 2008

8.6 EN / TS 4.1.1
2008
kA

89xxx
Deutschland
DLL mit niedrigerer Versionsnummer einbinden
' schrieb:Die andere Ursache ist wahrscheinlich ein Caching von Windows selber für .Net DLLs per Prozess. In dem Falle hilft tatsächlich nur noch das Abschliessen des Prozesses, sprich der Applikation.

Hallo Rolf
Danke für deine Antwort.
Ich weis es ist ein wenig spät für eine Rückmeldung, doch besser spät als nie.
Es liegt wie du sagst wohl an Windows, da ich LabVIEW komplett schließen muss und nach erneutem Start geht es ohne Probleme.


Nun hab ich eine neue Frage.

Ist es möglich die von mir verwendete DLL auf einen Server im Netzwerk zu legen, wo die Applikation nur Leserechte hat, und dies dann einbinden und korrekt verwenden?

Es sind ja weitere LabVIEW Prüfstände geplant und bei einer Änderung an der DLL müsste ich dann nur diese ändern und nicht zu jedem Prüfstand rennen und die neue Version lokal abseichern.

Vielen Dank für eure Erkläuterungen.

Gruß Stefan

P.S. Wünsche noch dem ganzen LabVIEWforum-Team und allen Nutzern ein frohes neues Jahr.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.01.2009, 20:18 (Dieser Beitrag wurde zuletzt bearbeitet: 06.01.2009 20:19 von rolfk.)
Beitrag #4

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
DLL mit niedrigerer Versionsnummer einbinden
' schrieb:Ist es möglich die von mir verwendete DLL auf einen Server im Netzwerk zu legen, wo die Applikation nur Leserechte hat, und dies dann einbinden und korrekt verwenden?

Kenne mich mit .Net wirklich nicht aus aber von dem bischen Erfahrung dass ich im Zusammenhang mit der Einbindung von .Net in LuaVIEW habe scheint es mir dass .Net grundsätzlich nur zwei Lokationen vorsieht. Die eine ist die Global Assembly Cache (GAC) wo nur Assemblies hinterlegt werden können die sogenannt "strongly named" sind.
Der andere Platz ist das Applikationsdirectory selber also dort wo das Executable liegt. Theoretisch kann eine Applikation eine Assembly auch noch von einem spezifischen absoluten Path laden aber MSDN rät die Verwendung dieser Möglichkeit sehr vehement ab.

Rolf Kalbermatter

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
16.01.2009, 17:37
Beitrag #5

Stef Offline
LVF-Grünschnabel
*


Beiträge: 31
Registriert seit: Sep 2008

8.6 EN / TS 4.1.1
2008
kA

89xxx
Deutschland
DLL mit niedrigerer Versionsnummer einbinden
Danke dir für deine Erläuterung.

Ich habe vom NI Support diesen Link zugesandt bekommen: http://digital.ni.com/public.nsf/allkb/F32...19?OpenDocument

Momentan bin ich in der Endfase meiner Diplomarbeit und habe leider keine Zeit diesen Lösungsweg zu testen.
Mir wurde nur gesagt, wenn dieser Link nicht zur Problemlösung hilft müssen die Jungs von Amerika ran. Wink

Habe diesen Link hier trotzdem eingestellt, damit er vielleicht einem anderen User hilft.

Gruß
Stef
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: