Я разрабатываю приложение с развертыванием на сервере.Я отключил автоматическую проверку обновлений из параметров проекта и реализовал возможность проверять обновления вручную.
Я не уверен, почему, но после запуска последовательности кода, если я решу не обновлять,в следующий раз, когда мое приложение открывается, оно автоматически проверяет наличие обновлений, и одно из них становится доступным, открывается окно «Доступные обновления».Любая помощь будет оценена.
Вот мой чек для обновления кода:
public static bool? CheckIfTheresDeploymentUpdate(string installationPath)
{
UpdateCheckInfo info = null;
if (ApplicationDeployment.IsNetworkDeployed)
{
ApplicationDeployment deployment = ApplicationDeployment.CurrentDeployment;
try
{
var appId = new ApplicationIdentity(deployment.UpdatedApplicationFullName);
var unrestrictedPerms = new PermissionSet(PermissionState.Unrestricted);
var appTrust = new ApplicationTrust(appId)
{
DefaultGrantSet = new PolicyStatement(unrestrictedPerms),
IsApplicationTrustedToRun = true,
Persist = true
};
ApplicationSecurityManager.UserApplicationTrusts.Add(appTrust);
// Check for update
info = deployment.CheckForDetailedUpdate();
}
catch (CompatibleFrameworkMissingException)
{
MessageBox.Show("Missing .NET Framework, Installing directly from server.");
ManualUpdate();
return null;
}
catch (Exception er)
{
Tools.ReportIssue("Update Issue", "in the update sequence", er);
MessageBox.Show("Error in updater, updating directly from server.");
ManualUpdate();
return null;
}
return info.UpdateAvailable;
}
return null;
void ManualUpdate()
{
if (File.Exists(installationPath))
Process.Start(installationPath);
else
MessageBoxWithLinks.Show("Can't Update", "Couldn't do manual update, try use this link when network is available: {" + installationPath + "}", new string[] { installationPath });
}
}