private static void InstallUpdateSyncWithInfo()
{
UpdateCheckInfo info = null;
if (ApplicationDeployment.IsNetworkDeployed)
{
ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;
try
{
info = ad.CheckForDetailedUpdate();
}
catch (DeploymentDownloadException dde)
{
MessageBox.Show(String.Format(
Properties.Settings.Default.CLICKONCE_CANT_DOWNLOAD_UPDATE,
dde.Message, MessageBoxButtons.OK,
MessageBoxIcon.Exclamation));
return;
}
catch (InvalidDeploymentException ide)
{
MessageBox.Show(String.Format(
Properties.Settings.Default.CLICKONCE_CORRUPT_DEPLOYMENT,
ide.Message, MessageBoxButtons.OK,
MessageBoxIcon.Exclamation));
return;
}
catch (InvalidOperationException ioe)
{
MessageBox.Show(String.Format(
Properties.Settings.Default.CLICKONCE_NO_CLICKONCE_DEPLOYMENT,
ioe.Message, MessageBoxButtons.OK,
MessageBoxIcon.Exclamation));
return;
}
if (info.UpdateAvailable)
{
Boolean doUpdate = true;
if (!info.IsUpdateRequired)
{
DialogResult dr = MessageBox.Show(
string.Format(Properties.Settings.Default.CLICKONCE_UPDATE_AVAILABLE,
info.AvailableVersion.ToString()),
Application.ProductName, MessageBoxButtons.OKCancel,
MessageBoxIcon.Information);
if (!(DialogResult.OK == dr))
{
doUpdate = false;
}
}
else
{
MessageBox.Show(
String.Format(Properties.Settings.Default.CLICKONCE_MANDATORY_UPDATE,
info.MinimumRequiredVersion.ToString(),
ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString()),
Application.ProductName, MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
if (doUpdate)
{
try
{
ad.Update();
MessageBox.Show(Properties.Settings.Default.CLICKONCE_UPDATE_SUCCESSFULLY,
Application.ProductName, MessageBoxButtons.OK,
MessageBoxIcon.Information);
Application.Restart();
}
catch (DeploymentDownloadException dde)
{
MessageBox.Show(String.Format(
Properties.Settings.Default.CLICKONCE_CANT_INSTALL_UPDATE,
dde.Message, MessageBoxButtons.OK,
MessageBoxIcon.Exclamation));
return;
}
}
}
else
{
MessageBox.Show(Properties.Settings.Default.CLICKONCE_NO_UPDATES_AVAILABLES,
Application.ProductName, MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
}
}