Ошибка обновления Clickonce
- Привет!
У меня есть приложение, которое в прошлом месяце получило ошибку, которую я не смог решить.
Приложение представляет собой складское / производственное приложение WPF и публикуется в локальной сети без подключения к Интернету с примерно 100 компьютерами с Windows 7. Приложение находится в быстром цикле разработки и имеет до 100 обновлений в год. В приложении также есть фоновая программа обновления, которая обновляет приложение и уведомляет пользователя о завершении с помощью запроса на перезапуск. Приложение развертывается в общей сетевой папке, в которой для папки установки и обновления указан полный путь. Однако пользователь может выбрать установку приложения с сетевой станции в своем файловом проводнике, поскольку тот же общий ресурс также отображается как этот. Это не должно вызывать беспокойства, если установлено местоположение обновления.
Ошибка заключается в том, что при проверке обновленной версии мы получаем сообщение "пользователь отказался предоставить необходимые разрешения на доступ к приложению". Мы пробовали как фоновое, так и переднее обновление, и мы также недавно попробовали это:
ApplicationDeployment deployment = ApplicationDeployment.CurrentDeployment; 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);
без успеха.
Наш код обновления таков:
if (ApplicationDeployment.IsNetworkDeployed) { ApplicationDeployment deployment = ApplicationDeployment.CurrentDeployment; 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); try { info = deployment.CheckForDetailedUpdate(); } ......
и он всегда терпит неудачу с TrustNotGrantedException и приведенным выше сообщением. Даже если я опубликую обновление без изменений в кодовой базе.
johannesnestler
значит, сначала это сработало? через некоторое время процесс обновления вызвал ошибку? Можете ли вы "сказать", с какой версии он больше не работал?
Я подозреваю, что некоторые изменения в ИТ-инфраструктуре или изменения в вашем коде развертывания / конфигурации...
MrDeej
Около месяца назад, кажется, что до сих пор некоторые компьютеры не затронуты. У меня есть подозрение насчет обновления Windows.
Но у нас есть приложение Winforms, также опубликованное в той же среде, и оно отлично работает с тем же кодом обновления.
Наш код был неизменен и работал уже некоторое время, когда он внезапно сломался.
Joan Magnet
Мы обнаружили большую проблему с одним обновлением win в этом месяце, связанным с разрешениями ключа реестра, в библиотеках Net Framwork (2 & 4.5).