| |
| In diesem Forum haben Sie die Möglichkeit Kommentare, Fragen und Verbesserungsvorschläge zu den im vb@rchiv gelisteten Tipps und Workshops zu posten.
Hinweis: Ein neues Thema kann immer nur über die jeweilige Tipps & Tricks bzw. Workshop Seite eröffnet werden! | Fragen zu Tipps & Tricks und Workshops im vb@rchivWorkshop 117: Assemblies und deren Versionen in VB.NET | | | Autor: tho192 | Workshop anzeigenDatum: 16.11.09 10:04 |
| Hallo,
zu diesem Workshop habe ich eine Frage:
bei meinem .net (2.0)-Projekt benutze ich eine .dll eines Fremdherstellers. Mehrmals im Jahr kommen da Hotfixes, was die Versionsnummer dieser .dll sich ändern lässt. Und jedesmal muss ich meine benutzende Assembly gegen die des Fremdherstellers neu kompilieren, da meine eine strenge Versionsprüfung vornimmt - mit anschließendem Deploy usw.
Meine Frage nun: kann ich meiner Assembly sozusagen eine gewisse "Versionstoleranz" gegenüber einer referenzierten Assembly beibringen, da es sich wirklich nur um Fehlerkorrekturen handelt und die Funktionalität sich nicht ändert?
Für Antworten vielen Dank!
Thomas | |
Re: Assemblies und deren Versionen in VB.NET | | | Autor: Ohanja | Datum: 16.11.09 15:37 |
| Hi
Das wird so nicht gehen, da die Manifest deiner Assembly explizit auf die Version der Dll verweist. Wenn du dann eine neue Dll-Version hast musst du die auch neu referenzieren und dein Assembly gegen die neue Version kompilieren. Die Frage die sich mir stellt ist, wenn der Hersteller so viel fixen muss(hm....) und der Funktionsumfang sich nicht ändert, würde es doch ausreichen wenn die die Dateiversion ändern und nicht die Assembly-Version, oder??!! Denn die Datei-Version ist nicht relevant. Wie ich im Workshop beschrieben habe können mehrere Versionen ein und der selben dll im GAC installiert sein. Solltes du die Dll im Anwendungsverzeichnis liegen haben, kommst du eh nicht drum herum die neu einzubinden. Du musst letztendlich selbst entscheiden wie du damit verfährst. Mir fällt auch im Moment da keine Lösung ein, die dir sofort helfen könnte. Interessieren würds mich aber doch mal ob es da nicht eine andere Lösung gibt. Wobei, als ich diesen Workshop gemacht hatte, war in der MSDN auch nicht viel darüber. Falls du doch was in Erfahrung bringst, bitte schreiben!!!
mfg
Ohanja | |
Re: Assemblies und deren Versionen in VB.NET | | | Autor: tho192 | Datum: 16.11.09 16:34 |
| Hallo,
vielen Dank für Deine Antwort. Der Fremdhersteller (bei dem es sich um ein namentlich nicht näher genanntes großes Softwarehaus mit Sitz in Darmstadt handelt), liefert noch eine Datei gleichen Namens, nur mit der Erweiterung .xml statt .dll, in der, so vermute ich aufgrund der dort verwendeten Namen, möglicherweise noch Direktiven gemacht werden können, die benutzenden Assemblies eine andere Version vorgaukeln.
Auf jeden Fall, habe ich unserer Systemunterstützung im Haus mal Deinen Hinweis auf die beiden Versionen (Assembly und Datei) gegeben, die wollen mal beim Hersteller damit vorstellig werden.
Gruß
Thomas | |
Re: Assemblies und deren Versionen in VB.NET | | | Autor: tho192 | Datum: 18.11.09 08:58 |
| Hallo,
jetzt habe ich Antwort vom Fremdhersteller bekommen. Eine "Versionstoleranz" lässt sich über die Konfiguration bewerkstelligen. Man kann eine sogenannte "Assembly Binding Redirection" definieren (siehe: http://msdn.microsoft.com/en-us/library/2fc472t2%28VS.80%29.aspx.
Als spezielles Beispiel des Herstellers hat er folgendes mitgeteilt (ich habe die konkreten Namen etwas verallgemeinert):
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="hersteller.produkt.assembly.Runtime"
publicKeyToken="0123456789abcdef" />
<bindingRedirect oldVersion="1.1.1.0-1.2.1.24" newVersion="2.0.1.0" />
<codeBase version="2.0.1.0"
href="file:///C:\Program Files\Common" & _
"Files\hersteller\hersteller.produkt.assembly.Runtime.dll"/>
</dependentAssembly>
</assemblyBinding>
</runtime> Note:
The <runtime> configuration fragment has to be placed behind the <configSections> and <appSettings> sections of the configuration file. Otherwise the .NET runtime will report errors.
Das wäre wohl die Lösung, die ich dann das nächste Mal ausprobieren werde.
Gruß
Thomas | |
Re: Assemblies und deren Versionen in VB.NET | | | Autor: Ohanja | Datum: 18.11.09 14:37 |
| hi tho192
danke für den hinweis. Ich werde es mir mal ansehen und auch testen.
<bindingRedirect>.... das ich da nicht selbst drauf gekommen bin....
Wenns recht ist, werde ich mich dann mal mit dem vbarchiv team in Verbindung setzten und den Workshop dementsprechend erweitern. Eine Erwähnung deiner seits für deine anregung und eventuelle lösung ist dann auf jedenfall drin!!!
mfg
Ohanja | |
Re: Assemblies und deren Versionen in VB.NET | | | Autor: Ohanja | Datum: 18.11.09 14:50 |
| noch was
muss ich aber erst noch testen.
Ich habe ja im Wshop geschrieben, das es einmal die Assembly version und die Datei Version gibt und das für die clr nur die Assembly Version wichtig ist.
Theoretisch müsste man eigentlich nur die Dateiversion ändern wenn man innerhalb der funktionen der Dll den Code ändert. Solange keine Deklarationen bzw. Prozedurköpfe, Übergabeparameter und Rückgabeparameter geändert oder hinzugefügt werden sollte die Dateiversion ausreichen. Weil ja deine Anwendung nur die funktionen der dll aufruft und eventuelle rückgabewerte verwendet. Der Code innerhalb der Funktionen dieser Dll wird ja unabhängig von der aufrufenden Anwendung verarbeitet.
mfg
Ohanja | |
| Sie sind nicht angemeldet! Um einen neuen Beitrag schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
Neu! sevDTA 3.0 Pro
SEPA mit Kontonummernprüfung
Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Weitere InfosTipp des Monats März 2024 Dieter OtterUTF-8 Konvertierung von Dateien und StringsVB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|