Assemblyinformationen frei geben

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Manschula.

    Assemblyinformationen frei geben

    Hey, ich habe einen kleinen Updater programmiert und idendifiziere die zu Updatende Datei an der Assemblydescription

    VB.NET-Quellcode

    1. Dim assemblyinfo As Assembly
    2. assemblyinfo = System.Reflection.Assembly.LoadFile(verzeichnisfiles(i))
    3. Dim m_Description As AssemblyDescriptionAttribute
    4. m_Description = CType(assemblyinfo.GetCustomAttributes( _
    5. GetType(AssemblyDescriptionAttribute), False)(0), _
    6. AssemblyDescriptionAttribute)
    7. Dim str As String = m_Description.Description
    8. If str = "Dieses Programm macht dies und dies blabla" Then
    9. rightdatei = verzeichnisfiles(i)
    10. Exit For
    11. End If


    Nun will ich diese Datei kopieren und die alte löschen

    VB.NET-Quellcode

    1. FileCopy(rightdatei, My.Application.Info.DirectoryPath & "\tmp.exe")
    2. FileOpen(1, My.Application.Info.DirectoryPath & "\tmp.exe", OpenMode.Binary)
    3. File.Delete(rightdatei)


    Nun lässt diese sich aber nciht löschen. Wie gebe ich den Speicher der geladenen Datei weider frei, sodass ich diese löschen kann? Weil wenn ich keine Assemblyinfos auslese lässt diese sich wunderbar löschen.
    Hey,

    bleibt natürlich die Frage, warum der User den Dateinamen ändern sollte. Aber du könntest überprüfen, wann die Datei erstellt wurde. Ist die Datei dann älter als deine neue (aus dem Update), dann kannst du sie ersetzen.

    Gruß, Manschula
    Aber du weißt doch das Datum (+Zeit) der einzelnen Dateien. Dann kannst du doch die richtige herausfinden, unabhängig vom Namen. Dann gehst du halt alle Dateien (z.B. alle vorhandenen *.exe-Dateien) mit einer Schleife durch, vergleichst das Datum und ersetzt/löschst/wai die richtige Datei.