Datei Löschen EXE
-
Hallo,
Ich stehe vor ein Problem, ich jetzt mal euch frage, nach langem googlen
Und zwar bastle ich mir gerade ein kleinen Updater für mein Programm, der Dateien Downloaden soll, und dann auch austauschen.
Mein Problem, ich bekomme entweder einen Fehler beim Download (das er die überschreibt), oder ich kann die exe nicht löschen, da der zugriff verweigert wird.
*Die exe die ich Löschen möchte läuft nicht! ich lasse die exe Schließen, bevor der Updater startet!
Download alleine Klapt ohne Probleme, und sogar das überschreiben von der .ini Datei, bloß bei der exe kommt ein Web Client fehler (Klasse).
Habt ihr eine Idee, wie man das machen kann?
Hier der Code, wo der Updater Startet:
WebClient Client = new WebClient(); Client.DownloadFile("C:/.ini", ".ini"); Client.DownloadFile("C:/.exe", ".exe"); Process.Start(".exe"); this.Close();
Gruß
Kai
-
Zum Ablauf nochmal:
Wenn ein update verfügbar ist, kommt ein Fenster, und der Ja btn hat folgenden Code:
private void btnja_Click(object sender, EventArgs e) { this.Close(); v.Srun(true); Process.Start("Update.exe"); }
Bei Close, habe ich Dispose, and App...Exit drinne!
Und der Updater hat:
private void frmUpdate_Load(object sender, EventArgs e) { //WebClient Methode erstellen WebClient Client = new WebClient(); Client.DownloadFile("C:/.ini", ".ini"); Client.DownloadFile("C:/.exe", ".exe"); Process.Start(".exe"); this.Close(); } private void frmUpdate_FormClosing(object sender, FormClosingEventArgs e) { this.Dispose(); Application.Exit(); }
Wie kann man es machen, damit es funktionier?
-
Deine Anwendung läuft so lang, wie der Updater läuft. - Das heißt auf die Ausführbare Datei kann nicht zugegriffen werden, da diese noch läuft.
Der übliche Weg ist, die original-Datei umzubenennen / zu verschieben und anschließend die neue hinein zu kopieren.
-
Ok, danke für die schnelle Antwort.