Ich versuche, ein "Updater" für mein Programm zu erstellen, und eines der Dinge, die ich tun muss, ist das Herunterladen der Exe von einer URL. Ich versuche, WebClient.DownloadFile
(https://msdn.microsoft.com/en-us/library/ez801hhe(v=vs.110).aspx) zu verwenden, aber ich erhalte einen Fehler: An object reference is required for the nonstatic field, method, or property 'WebClient.DownloadFile(string, string)'
. Ich nehme an, das ist etwas Dummes, das ich übersehen habe, aber ich habe Schwierigkeiten, es herauszufinden. Jede Hilfe wird geschätzt.Winforms - Für das nicht statische Feld, die Methode oder die Eigenschaft ist eine Objektreferenz erforderlich.
Code:
private void Update()
{
string downloadURL = EXE_LOCATION;
string progName = Application.ExecutablePath.Substring(Application.ExecutablePath.LastIndexOf("\\") + 1);
string progLoc = Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf("\\") + 1);
if (File.Exists(progLoc + progName))
{
try
{
File.Move(progLoc + progName, progLoc + "Old-version.exe");
}
catch (Exception ex)
{
Console.WriteLine("Problem renaming: " + ex.Message);
}
}
WebClient.DownloadFile(downloadURL, progLoc + progName);
}
'DownloadFile' ist nicht statisch. Sie benötigen eine Instanz von 'WebClient'. –
WebClient webclient = neuer WebClient(); webclient.DownloadFile (downloadURL, progLoc + progName); Ich muss wirklich herausfinden, wie man den Code korrekt in Kommentare einfügt, lol. – jpaugh78
Es gibt Methoden in .Net, die den Pfad und die Datei für Sie aufteilen - 'Path.GetDirectoryName (Application.ExecutablePath)', um den Speicherort zu erhalten, und 'Path.GetFileName (Application.ExecutablePath)' für den Namen. – stuartd