Приложение Silverlight 4 OOB с повышенным доверием и подписанным сертификатом не обновляется? Нужно переустановить?

У меня есть OOB-приложение, которое не требует повышенного доверия и не было подписано. Многие скачали его и используют OOB.

Затем мне нужно было использовать функции повышенного доверия, поэтому я купили законный сертификат от Comodo, и теперь я его подписываю. На localhost все отлично работает - ему доверяют и сертификат распознает.

Однако, как только я загрузил новую версию, моя существующая установка OOB (которая была старое неподписанное приложение без повышенного доверия) не выполняло обычную «проверку и обновление новой версии».

Это критически важно, поскольку многие люди его установили - есть ли какие-то ограничения на переход на подписанный, повышенный уровень доверия в отношении загрузок? Имя .xap такое же и находится в том же месте. Поиск скрипта видит новое изменение, поэтому проблема кеширования не возникает. Я очистил все свои кеши с помощью CCleaner, чтобы убедиться.

Я удалил старое приложение OOB на другом компьютере, и подписанный сертификат работает нормально при установке (т. Е. Я получаю красивое сообщение об установке «доверенный издатель»), так что это не проблема с подписью. Вы можете увидеть его вживую здесь (я оставлю новую версию как там не вредно - старые пользователи просто не узнают об этом!)

Я считаю, что это как-то связано с изменением «Повышенного доверия»?

Обновление. Я провел еще несколько тестов: удалил повышенное доверие и снова загрузил его. СТАРЫЙ, который не обновлялся, затем обновлялся DID, а новый (повышенное доверие + подписанный) на другом компьютере НЕ обновлялся. Таким образом, кажется, что процесс обновления не может обработать изменение уровня доверия, независимо от того, подписано оно или нет. Это БОЛЬШАЯ проблема для всех пользователей, которые застрянут на старой версии и никогда не узнают об этом.

Другая проблема заключается в том, что НОВОЕ подписанное приложение считает, что приложение установлено на моем компьютере (старый неподписанный, который не обновляется), и, следовательно, не будет отображать параметр «Установить». И очень немногие пользователи будут знать, как удалить его и переустановить, ЕСЛИ они хотя бы однажды зашли на веб-сайт, чтобы проверить. Если это так, то это действительно серьезная ошибка.


person Rodney    schedule 16.09.2010    source источник


Ответы (3)


К сожалению, вашим пользователям придется удалить и переустановить приложение. Это не ошибка как таковая (я не верю), а скорее дизайн. Если вы посмотрите эту статью в MSDN: http://msdn.microsoft.com/en-us/library/dd550721(VS.95).aspx, вы увидите, что в нем говорится:

Silverlight 4 обеспечивает поддержку запуска приложений вне браузера с повышенным доверием. Доверенные приложения не могут использовать механизм обновления, описанный в этом разделе, если приложение и обновление не были подписаны одним и тем же действительным сертификатом для подписи кода. Чтобы обновить доверенное приложение, не имеющее действующей подписи, пользователи должны удалить старую версию и установить новую версию вручную.

В последнем предложении более или менее, кажется, указывается, что пользователям с неподписанным приложением нужно будет удалить приложение, а затем установить приложение с повышенным доверием, чтобы обновить его. Я читал кое-что, где это говорилось более точно, но не могу вспомнить, где было жаль :(.

Надеюсь это поможет...

Крис

person Chris Anderson    schedule 25.09.2010
comment
привет Крис! Спасибо, в конце концов я нашел эту статью - спасибо за подтверждение. Это просто кажется действительно странным пользовательским опытом; если вы когда-нибудь подпишете / повысите доверие к своему приложению в будущем, вы ИЗОЛИРУЕТЕ все свои существующие OOB-установки. Лучшим способом справиться с этим было бы показать пользователю, что эта программа требует повышенного доверия - вы хотите обновить - при следующей проверке обновления версии OOB вместо того, чтобы просто останавливаться мертвым в воде ... Я справился с этим, как я упоминал выше в пункте 2 - по крайней мере, я не потеряю всех своих пользователей, если они попытаются переустановить его. - person Rodney; 26.09.2010
comment
Я полностью согласен - нынешняя ситуация означает, что вы должны определить потребность в повышенном доверии до первого развертывания приложения. Вы добавили его как запрос на голосовой сайт пользователей Silverlight? - person Chris Anderson; 26.09.2010
comment
Готово - dotnet.uservoice.com/forums/ - person Rodney; 27.09.2010

Не получив ответа / предложений, я, к сожалению, прихожу к выводу, что это ошибка в SL4.

Я предполагаю, что, поскольку приложение теперь требует подтверждения пользовательского интерфейса для подтверждения повышенного доверия, существующее ненадежное приложение не может обработать этот пользовательский интерфейс при обновлении, поэтому оно просто не загружает его.

По какой-то причине удаление повышенного доверия имеет ту же проблему (доверенные приложения OOB также не обновляют обновление без повышенного доверия, что еще более странно).

Мне кажется, что если вы измените Elevated Trust, вы просто изолируете всех людей, которые уже установили ваше приложение.

Итак, кажется, есть 2 варианта:

  1. Просто обновите приложение и полагайтесь на блоги и т. Д., Которые сообщат им, что они должны удалить его и переустановить. Это отстой, потому что они не ЗНАЮТ, что есть известная версия, и могут использовать старую еще 10 лет, не зная. Кроме того, если они перейдут к онлайн-версии, он думает, что она уже установлена, поэтому не будет предлагать меню «Установка» снова, пока вы не удалите старую - очень беспорядочно! Я думаю, что это путь, по которому Тим Хойер пошел здесь с подписанным приложением Facebook - http://timheuer.com/blog/archive/2010/04/15/silverlight-client-for-facebook-updated-for-silverlight-4-release.aspx

  2. Переименуйте файл .XAP и начните для него новый проект. Сделайте так, чтобы в старом файле .xap было сообщение «Есть новая версия» с инструкциями / ссылками по удалению и повторной установке. Затем, если они просматривают новый, не удалив старый, он все равно будет установлен, поскольку это другое имя XAP, и вы можете по крайней мере связаться с ними, сообщив им, что старый мертв.

Любые другие предложения ?!

person Rodney    schedule 17.09.2010

Хороший способ исправить тех пользователей, которым необходимо обновление, - предоставить им небольшое приложение для запуска, которое будет автоматически обновлять их. Используя эту статью: Установите Silverlight- вне браузера Таким образом, конечные пользователи просто загрузили бы небольшой исполняемый файл, который удалил бы «ненадежный», а затем переустановил с новым.

person TChadwick    schedule 25.02.2013