Hallo. Ich habe nun einen Lösungsansatz gefunden, wie ich meine Anwendung automatisch updaten kann. Auf meiner Website lade ich eine Datei mit der neuesten Version hoch. Bei jeden Programmstart wird diese Datei gedownloadedet und mit der aktuellen Version verglichen. Dann wird die neue Exe heruntergeladen.
So weit so gut. Jedoch kommt an folgender Stelle ein Fehler. Meine Vermutung ist, dass der WebClient einen Stream zurückgibt und die Datei deswegen nicht geöffnet werden kann:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| var s = Schuldenverwaltung.Öffnen();
WebClient webclient = new WebClient(); Uri uri = new Uri(@"http://mailet-software.weebly.com/uploads/7/2/0/5/72054763/version3.txt"); webclient.DownloadFileAsync(uri, Path.Combine(Application.StartupPath, "Version.txt"));
string VersionNumber = "";
using (StreamReader file = new StreamReader(Path.Combine(Application.StartupPath, "Version.txt"))) { VersionNumber = file.ReadToEnd(); file.Close(); }
if (VersionNumber != s.Version) { MessageBox.Show("Neues Update"); s.Version = VersionNumber; s.Speichern(); } |
Die Fehlermeldung lautet: Der Prozess kann nicht auf die Datei "C:\Users\Yannic M.\documents\visual studio 2013\Projects\Downloader\Downloader\bin\Debug\Version.txt" zugreifen, da sie von einem anderen Prozess verwendet wird.
Ich habe es nach
webclient.DownloadFileAsync(uri, Path.Combine(Application.StartupPath, "Version.txt")); mit
webclient.CancelAsync(); versucht, jedoch wird dann keine Datei erstellt.
Die Datei von meiner Website:
mailet-software.weebly.com/neue-seite.html
Wie kann ich diesen Fehler beheben?
"Wer keinen Sinn im Leben sieht, ist nicht nur unglücklich, sondern kaum lebensfähig" - Albert Einstein