6

如何以编程方式卸载浏览器外的silverlight 4 应用程序而不是使用上下文菜单(例如,如果我想替换上下文菜单)?

编辑

我在“在不涉及浏览器的情况下安装 Silverlight 应用程序”中找到了如何通过调用命令行来卸载:

"%ProgramFiles%\Microsoft Silverlight\sllauncher.exe" /uninstall /origin:silverlight.net/content/samples/apps/...</p>

这可以用于:-

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

有没有更好的解决方案?

4

5 回答 5

2

我不确定您是否可以以编程方式执行此操作。

一种选择是让用户使用添加/删除程序来删除它。

另一种是使用静默安装选项将其删除(链接 - http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2010/03/24/silverlight-4-rc-and-the-silent-installation。 aspx),但这涉及 COM 互操作调用。

麦克风。

于 2010-04-29T08:23:44.993 回答
1

您提到的解决方案仍然是我知道的唯一方法。不过,在它后面加上一个很好的接触Application.Current.MainWindow.Close();,因为在您卸载后应用程序仍将运行。

马克

于 2010-07-12T13:16:30.133 回答
1

正如迈克所说,如果不求助于 COM 互操作,可以肯定这是不可能的,我也质疑这是否是一个好主意,因为:

1) 删除卸载选项无疑会惹恼许多用户并且是不好的做法。2) 你说你正在寻找一个新的上下文菜单?除非这是一个 LOB 应用程序,否则我会对此保持警惕,因为许多用户不会习惯访问 Web 应用程序中的上下文菜单,这对我来说是糟糕的 HCI。如果它是一个 LOB 应用程序,那么添加/删除程序将是一个好的解决方案吗?

于 2010-08-23T12:54:28.553 回答
1

这不是答案,但与您的问题有关。在官方 Silverlight 愿望清单上,我在很久以前就添加了执行此操作的功能。幸运的是,很少有用户同意。有了足够的选票,希望它会出现在 Silverlight 的未来版本中。

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

于 2010-10-18T03:15:45.130 回答
0

在此处查看我的解决方案:无法以编程方式从浏览器应用程序中卸载 SIlverlight 我在控制台应用程序中使用了其中的代码,该应用程序由正在卸载的 silverlight 应用程序运行。Silverlight 将 EXE 作为资源提取到其中一个目录中,然后使用以下内容运行它:

using (dynamic shell = AutomationFactory.CreateObject("WScript.Shell"))
{
     shell.Run(@"C:\Users\yourusername\AppData\update.exe xapNameToUninstall");
}
于 2013-08-08T13:55:21.850 回答