vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Assemblies (DLLs) in anderen Verzeichnissen 
Autor: STSC
Datum: 20.12.04 09:48

Hier mal wie der Remote DLL Aufruf funktioniert:

Handler im Konstruktor
AddHandler AppDomain.CurrentDomain.AssemblyResolve, AddressOf _
  MyResolveEventHandler
Die Funktion habe ich dann in ein Modul gepackt:

    Function MyResolveEventHandler(ByVal sender As Object, _
                               ByVal args As ResolveEventArgs) As [Assembly]
 
        'This handler is called only when the common language runtime tries to 
        ' bind to the assembly and fails.
 
        'Retrieve the list of referenced assemblies in an array of AssemblyName.
        Dim objExecutingAssemblies As [Assembly]
        objExecutingAssemblies = [Assembly].GetExecutingAssembly()
        Dim arrReferencedAssmbNames() As AssemblyName
        arrReferencedAssmbNames = _
          objExecutingAssemblies.GetReferencedAssemblies()
 
        'Loop through the array of referenced assembly names.
        Dim strAssmbName As AssemblyName
        For Each strAssmbName In arrReferencedAssmbNames
 
            'Look for the assembly names that have raised the "AssemblyResolve" 
            ' event.
            If (strAssmbName.FullName.Substring(0, _
              strAssmbName.FullName.IndexOf(",")) = args.Name.Substring(0, _
              args.Name.IndexOf(","))) Then
 
                'Build the path of the assembly from where it has to be loaded.
                Dim strTempAssmbPath As String
                strTempAssmbPath = "C:\Programme\Team MediaPortal\MediaPortal\" _
                  & args.Name.Substring(0, args.Name.IndexOf(",")) & ".dll"
 
                Dim MyAssembly As [Assembly]
 
                'Load the assembly from the specified path.
                MyAssembly = [Assembly].LoadFrom(strTempAssmbPath)
 
                'Return the loaded assembly.
                Return MyAssembly
            End If
        Next
 
    End Function
Falls es da wirklich keine andere Möglichkeit gibt, könnte man evtl. hier
m_db = new SQLiteClient(@"database\TVDatabaseV9.db");
auch einen anderen Pfad zuweisen. Nur wie mache ich das, da dieser Code sich in einer DLL befindet, die von einem andere Programm installiert wird. D.h. der Pfad wird immer erst durch das Setup festgelegt. Könnte das aber ändern, da ich ja die Sourcen habe. Vielleicht müsste das Setup was in die Registry schreiben, dass man dann davor abruft???
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Assemblies (DLLs) in anderen Verzeichnissen742STSC19.12.04 21:30
Re: Assemblies (DLLs) in anderen Verzeichnissen643STSC20.12.04 09:48

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 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