Guten Tag Zusammen,
In meinem Programm wird mithilfe zweier DLL's (von WinRAR), eine RAR Datei entpackt. Hierfür wird benötigt: "unrar.dll" sowie "UnRARNET.dll".
Die "UnRARNET.dll" habe ich in den Verweisen importiert. Die "unrar.dll" kann nicht importiert werden, jedoch wird sie trotzdem zum entpacken benötigt.
Deshalb werden vor dem Entpackungsvorgang, beide DLL's aus den Ressourcen, in den aktuellen EXE Pfad kopiert. In der Form wird noch
Dann wird der Entpackungsvorgang in einem eigenen Thread gestartet.
Problem: Nun würde ich gerne nach dem Entpackungsvorgang die DLL's wieder löschen, da diese ja nicht mehr benötigt werden. NUR sind diese sobald der Entpackungsvorgang gestartet wurde, so lange gesperrt, bis das Programm komplett beendet wurde. (gehe ich zumindest davon aus)
Mitlerweile hab ich versucht mit
die DLL's zu löschen, was allerdings immer gescheitert ist, da die DLL's nach dem Entpackungsvorgang weiterhin gesperrt sind.
Gibt es eine Möglichkeit die DLL's wieder freizugeben oder über einen anderen Weg zu löschen?
MfG, FireEmerald
In meinem Programm wird mithilfe zweier DLL's (von WinRAR), eine RAR Datei entpackt. Hierfür wird benötigt: "unrar.dll" sowie "UnRARNET.dll".
Die "UnRARNET.dll" habe ich in den Verweisen importiert. Die "unrar.dll" kann nicht importiert werden, jedoch wird sie trotzdem zum entpacken benötigt.
Deshalb werden vor dem Entpackungsvorgang, beide DLL's aus den Ressourcen, in den aktuellen EXE Pfad kopiert. In der Form wird noch
Imports RARNET
importiert.VB.NET-Quellcode
- Dim Res() As Byte = My.Resources.unrar
- Dim Res2() As Byte = My.Resources.UnRARNET
- Dim fsRes As FileStream = File.Create(Application.StartupPath & "\unrar.dll")
- Dim fsRes2 As FileStream = File.Create(Application.StartupPath & "\UnRARNET.dll")
- fsRes.Write(Res, 0, Res.Length)
- fsRes.Close()
- fsRes2.Write(Res2, 0, Res2.Length)
- fsRes2.Close()
Dann wird der Entpackungsvorgang in einem eigenen Thread gestartet.
Problem: Nun würde ich gerne nach dem Entpackungsvorgang die DLL's wieder löschen, da diese ja nicht mehr benötigt werden. NUR sind diese sobald der Entpackungsvorgang gestartet wurde, so lange gesperrt, bis das Programm komplett beendet wurde. (gehe ich zumindest davon aus)
Mitlerweile hab ich versucht mit
System.IO.File.Delete(PathUnRARNET)
, My.Computer.FileSystem.DeleteFile(PathUnRARNET)
und perdie DLL's zu löschen, was allerdings immer gescheitert ist, da die DLL's nach dem Entpackungsvorgang weiterhin gesperrt sind.
Gibt es eine Möglichkeit die DLL's wieder freizugeben oder über einen anderen Weg zu löschen?
MfG, FireEmerald