private void client_DownloadFileCompleted (object sender, AsyncCompletedEventArgs e)
{
try
{
var extractDirectory = Path.Combine (Path.GetTempPath(), "CalDavSynchronizer", Guid.NewGuid().ToString());
Directory.CreateDirectory (extractDirectory);
ZipFile.ExtractToDirectory (_archivePath, extractDirectory);
File.Delete (_archivePath);
MessageBox.Show (
"You need to restart Outlook after installing the new version!",
"Outlook Restart required",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
// process hast to be a GC root to prevent it from being garbage collected.
var msiFile = Path.Combine (extractDirectory, "CalDavSynchronizer.Setup.msi");
_latestSetupProcess = Process.Start ("msiexec.exe", "/i \"" + msiFile + "\" /passive");
if (_latestSetupProcess != null)
{
_latestSetupProcess.EnableRaisingEvents = true;
_latestSetupProcess.Exited += delegate
{
try
{
_latestSetupProcess = null;
Process.Start (WebResourceUrls.ReadMeFileDownloadSite.ToString());
}
catch (Exception x)
{
s_logger.Error ("Error while downloading readme.md", x);
}
};
}
DialogResult = DialogResult.OK;
}
catch (Exception ex)
{
s_logger.Warn ("Can't extract new version", ex);
MessageBox.Show ("Can't extract new version!", "CalDav Synchronizer Download failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void installButton_Click (object sender, EventArgs e)