ClickOnce updated nicht
Nachdem ich nun eine Weile mit der Mircosoft Visual C# 2008 Express Edition und der API-Doku im MSDN .NET Framework Developer Center gearbeitet, hatte ich nun ein – im Nachhinein recht witziges – Problem. Im Zuge einer ClickOnce-Anwendung habe ich die recht spartanisch gestaltete automatische Updatefunktion mit einer programminternen Variante ersetzt. Nach einer Reihe von Dummydeployments – man kann sonst ja nicht die Funktion testen – war ich schon nah am Rande der Verzweiflung, warum der asynchrone Updater einfach nicht updaten wollte. Alle relevanten Informationen wurden gefunden, aber er tat einfach nichts.
Nun hatte ich die Arbeit daran eine Weile ruhen lassen und mit frischer Energie und einem ungetrübten Blick mich heute wieder an das Problem gemacht… und es flux gelöst. Was war passiert?
Ich habe den Code auf dem MSDN-Beispiel der Klasse ApplicationDeployment basiert. Natürlich via Copy & Paste… man ist ja faul. Was man dann nicht merkt, ist, dass derjenige der das C#-Beispiel geschrieben hat, da eine Kleinigkeit vergessen hat. So sollte die Funktion
private void BeginUpdate()
{
ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;
ad.UpdateCompleted += new AsyncCompletedEventHandler(ad_UpdateCompleted);
ad.UpdateProgressChanged += new DeploymentProgressChangedEventHandler(ad_UpdateProgressChanged);
}
wohl eher
private void BeginUpdate()
{
ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;
ad.UpdateCompleted += new AsyncCompletedEventHandler(ad_UpdateCompleted);
ad.UpdateProgressChanged += new DeploymentProgressChangedEventHandler(ad_UpdateProgressChanged);
ad.UpdateAsync();
}
lauten.
















