Мы также пробовали обходные пути, но никто не разрешил все наши проблемы. Если вы установите сертификат Authenticode (только открытый ключ) в хранилище сертификатов «доверенные издатели», вы можете позвонить ApplicationDeployment.CheckForDetailedUpdate
без TrustNotGrantedException
.
Это было только проблемой для нас при запуске с CD-установкой, хотя мы видели подобные проблемы при переходе на новое UpdateLocation. Предполагая, что вы не изменили значение по умолчанию trust prompt behavior, ваша первоначальная установка компакт-диска должна была побудить пользователя (во время установки) повысить права приложения на FullTrust.
Если приложение настроено на проверку обновлений из сети или сети, и доступна более новая версия, первоначальная установка может получать разрешения для зоны Интернета или интрасети вместо разрешений полного доверия. Чтобы запретить пользователям запрашивать, системный администратор может указать политику развертывания ClickOnce, которая определяет определенный издатель приложения в качестве надежного источника.
(REF: VS2015 Securing ClickOnce Applications)
Я не нашел адекватной документации в Trusted Application Development Overview, но я считаю, что, когда вы пытаетесь перейти из зоны MyComputer (CD-установки) в зоне Интернета, доверие менеджер считает, что пользователю должно быть предложено повторно подтвердить повышение разрешения FullTrust. Кажется, что верификация доверия происходит только при запуске файла .application и, таким образом, вы пропустили свой шанс к моменту запуска вашего приложения.
FWIW - наши другие проблемы с обходными решениями были связаны с фиксацией панели задач на Win10 после переключения с CD-установки на веб-установку. Наше поведение было похоже на this, но ни один из этих решений не помог.
У меня такая же проблема. http://stackoverflow.com/questions/30947506/clickonce-update-fails-on-net-4-0-app-after-installing-net-4-5 https://social.msdn.microsoft.com/Форумы/windows/en-US/82db6a16-d97f-4332-9a3c-b95014f78d2e/clickonce-updates-fail-if-installed-from-disk-under-net-45x? Forum = winformssetup – XKCD137
Моим обходным решением было изменить установщик для проверки доступа в Интернет и установки непосредственно с веб-сайта (UpdateURL), который решает проблему для 95% пользователей. Исключение TrustNotGrantedException происходит только в том случае, если доступно обновление, поэтому, когда я обрабатываю это исключение, я вывожу сообщение с просьбой проверить сайт на новую версию. Не изящное решение, но у меня не хватило времени. – XKCD137
Я прибегал к чему-то подобному, тем самым, загружая и сразу запуская загрузчик с новой версией. Похоже на обход. – vvondra