У меня есть OOB-приложение, которое не требует повышенного доверия и не было подписано. Многие скачали его и используют OOB.
Затем мне нужно было использовать функции повышенного доверия, поэтому я купили законный сертификат от Comodo, и теперь я его подписываю. На localhost все отлично работает - ему доверяют и сертификат распознает.
Однако, как только я загрузил новую версию, моя существующая установка OOB (которая была старое неподписанное приложение без повышенного доверия) не выполняло обычную "проверку и обновление новой версии".
Это критически важно, поскольку многие люди его установили - есть ли какие-то ограничения на переход на подписанный, повышенный уровень доверия в отношении загрузок? Имя .xap такое же и находится в том же месте. Поиск скрипта видит новое изменение, поэтому проблема кеширования не возникает. Я очистил все свои кеши с помощью CCleaner, чтобы убедиться.
Я удалил старое приложение OOB на другом компьютере, и подписанный сертификат работает нормально при установке (т. Е. Я получаю красивое сообщение об установке "доверенный издатель"), так что это не проблема с подписью. Вы можете увидеть его вживую здесь (я оставлю новую версию как там не вредно - старые пользователи просто не узнают об этом!)
Я считаю, что это как-то связано с изменением "Повышенного доверия"?
Обновление. Я провел еще несколько тестов: удалил повышенное доверие и снова загрузил его. СТАРЫЙ, который не обновлялся, затем обновлялся DID, а новый (повышенное доверие + подписанный) на другом компьютере НЕ обновлялся. Таким образом, кажется, что процесс обновления не может обработать изменение уровня доверия, независимо от того, подписано оно или нет. Это БОЛЬШАЯ проблема для всех пользователей, которые застрянут на старой версии и никогда не узнают об этом.
Другая проблема заключается в том, что НОВОЕ подписанное приложение считает, что приложение установлено на моем компьютере (старый неподписанный, который не обновляется), и, следовательно, не будет отображать параметр "Установить". И очень немногие пользователи будут знать, как удалить его и переустановить, ЕСЛИ они хотя бы однажды зашли на веб-сайт, чтобы проверить. Если это так, то это действительно серьезная ошибка.
Ответ 1 · рейтинг 2 · Chris Anderson
К сожалению, вашим пользователям придется удалить и переустановить приложение. Это не ошибка как таковая (я не верю), а скорее дизайн. Если вы посмотрите эту статью в MSDN: http://msdn.microsoft.com/en-us/library/dd550721(VS.95).aspx, вы увидите, что в нем говорится:
Silverlight 4 обеспечивает поддержку запуска приложений вне браузера с повышенным доверием. Доверенные приложения не могут использовать механизм обновления, описанный в этом разделе, если приложение и обновление не были подписаны одним и тем же действительным сертификатом для подписи кода. Чтобы обновить доверенное приложение, не имеющее действующей подписи, пользователи должны удалить старую версию и установить новую версию вручную.
В последнем предложении более или менее, кажется, указывается, что пользователям с неподписанным приложением нужно будет удалить приложение, а затем установить приложение с повышенным доверием, чтобы обновить его. Я читал кое-что, где это говорилось более точно, но не могу вспомнить, где было жаль :(.
Надеюсь это поможет...
Крис
Ответ 2 · рейтинг 1 · Rodney
Не получив ответа / предложений, я, к сожалению, прихожу к выводу, что это ошибка в SL4.
Я предполагаю, что, поскольку приложение теперь требует подтверждения пользовательского интерфейса для подтверждения повышенного доверия, существующее ненадежное приложение не может обработать этот пользовательский интерфейс при обновлении, поэтому оно просто не загружает его.
По какой-то причине удаление повышенного доверия имеет ту же проблему (доверенные приложения OOB также не обновляют обновление без повышенного доверия, что еще более странно).
Мне кажется, что если вы измените Elevated Trust, вы просто изолируете всех людей, которые уже установили ваше приложение.
Итак, кажется, есть 2 варианта:
Просто обновите приложение и полагайтесь на блоги и т. Д., Которые сообщат им, что они должны удалить его и переустановить. Это отстой, потому что они не ЗНАЮТ, что есть известная версия, и могут использовать старую еще 10 лет, не зная. Кроме того, если они перейдут к онлайн-версии, он думает, что она уже установлена, поэтому не будет предлагать меню "Установка" снова, пока вы не удалите старую - очень беспорядочно! Я думаю, что это путь, по которому Тим Хойер пошел здесь с подписанным приложением Facebook - http://timheuer.com/blog/archive/2010/04/15/silverlight-client-for-facebook-updated-for-silverlight-4-release.aspx
Переименуйте файл .XAP и начните для него новый проект. Сделайте так, чтобы в старом файле .xap было сообщение "Есть новая версия" с инструкциями / ссылками по удалению и повторной установке. Затем, если они просматривают новый, не удалив старый, он все равно будет установлен, поскольку это другое имя XAP, и вы можете по крайней мере связаться с ними, сообщив им, что старый мертв.
Любые другие предложения ?!