Удалите приложение silverlight из браузера программным способом

Как удалить приложение silverlight 4 из браузера программно вместо использования contextmenu (например, если я хочу заменить контекстное меню)?

редактировать

Я нашел в "установка приложений Silverlight без участия браузера" как удалить, вызвав командную строку:

" %ProgramFiles%Microsoft Silverlightsllauncher.ехе" /удалить /origin:silverlight.net/content/samples/apps/...

Это можно использовать в: -

 dynamic cmd = AutomationFactory.CreateObject("WScript.Shell");
 cmd.Run(run, 1, true);

есть ли лучшее решение?

5 ответов


довольно уверен, что это невозможно, не прибегая к COM-взаимодействию, как говорит Майк, также я бы спросил, Если это хорошая идея, так как:

1) Удаление опции удаления, без сомнения, раздражает многих пользователей и является плохой практикой. 2) вы говорите, что хотите реализовать новое контекстное меню? Если это не приложение LOB, я бы опасался этого, так как многие пользователи не будут использоваться для доступа к контекстным меню в веб-приложении, которое для меня является плохим HCI. Если это приложение LOB, то установка / удаление программ будет решение ОК?


Я не уверен, что вы можете сделать это программно.

один из вариантов-заставить пользователя использовать программы добавления / удаления, чтобы удалить его.

другое-использовать опцию автоматической установки, чтобы удалить ее ( ссылка - http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2010/03/24/silverlight-4-rc-and-the-silent-installation.aspx) но это включает вызовы com-взаимодействия.

Майк.


решение, о котором вы упомянули, по-прежнему единственный способ сделать это. Это хороший штрих положить Application.Current.MainWindow.Close(); после этого, хотя приложение по-прежнему будет работать после удаления.

Марк


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

http://dotnet.uservoice.com/forums/4325-silverlight-feature-suggestions/suggestions/410706-greater-control-over-installation-in-oob


Проверьте мое решение здесь:не удалось удалить SIlverlight из приложения браузера программно я использовал код в нем в консольном приложении, которое было запущено приложением silverlight, которое он удалял. Silverlight извлек EXE в качестве ресурса в один из каталогов, а затем запустил его, используя что-то вроде следующего:

using (dynamic shell = AutomationFactory.CreateObject("WScript.Shell"))
{
     shell.Run(@"C:\Users\yourusername\AppData\update.exe xapNameToUninstall");
}