System.Reflection.Assembly.LoadFrom ... Process "Lock"

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von foxm2k.

    System.Reflection.Assembly.LoadFrom ... Process "Lock"

    Hallo,

    für meine zahlreichen Anwendungen habe ich nun einen Web-based installer gerschrieben.
    Dieser prüft bei beginn durch den Code

    VB.NET-Quellcode

    1. Dim LocalAssembly As System.Reflection.Assembly = System.Reflection.Assembly.LoadFrom(LocalPath & AssemblyName)
    2. LocalVersion = LocalAssembly.GetName().Version.Major & "." & _
    3. LocalAssembly.GetName().Version.Minor & "." & _
    4. LocalAssembly.GetName().Version.Build & "." & _
    5. LocalAssembly.GetName().Version.Revision
    6. LocalAssembly = Nothing


    die Versions Nummer des aktuell installierten Programms.
    Ist diese "älter" Soll er logischerweise updaten...

    Problem ist nur : Beim kopieren der neuen Exe-Datei von Temp nach Zielpfad bekomme ich eine
    "IOException" (....progress cannot access the file .... because it is being used by another process.

    Die vermutung liegt nahe, dass mein PUpdater nach dem Prüfen der Assembly version seinen "Zugriff" nicht wieder beendet...

    grüße,
    dognose
    Ein Tipp am Rande... ich finde es wesentlich komfortabler nicht irgendwelche Dateiversionen zu vergleichen sondern einfach das Erstellungsdatum der Dateien zu vergleichen. Gibt es auf dem Server eine Datei neueren Datums / Uhrzeit dann handelt es sich wohl um ein Update. Dazu einfach das Datum/Uhrzeit jeweils ins UTC Format normieren und dann läßt sich das Server- / Zeitzonenunabhängig sicher vergleichen.

    Gruß,

    f0x