如何在远程计算机上运行ClickOnce应用程序(.appref-ms)?

时间:2009-06-10 08:14:18

标签: c# .net wmi clickonce remote-access

我正在尝试使用WMI在远程计算机上通过.appref-ms快捷方式启动ClickOnce应用程序,但无法成功。如果我尝试运行notepad.exe,以下代码可以正常工作。

ManagementPath pm = new ManagementPath(@"\\server\root\cimv2:Win32_process");
ManagementClass processClass = new ManagementClass(pm);

//Get an input parameters object for this method
ManagementBaseObject inParams = processClass.GetMethodParameters("Create");

//Fill in input parameter values
inParams["CommandLine"] = @"C:\Documents and Settings\Start Menu\Programs\New\New App.appref-ms";

//Execute the method
ManagementBaseObject outParams = processClass.InvokeMethod("Create", inParams, null);

2 个答案:

答案 0 :(得分:3)

尝试通过rundll32启动.appref-ms快捷方式:

inParams["CommandLine"] = @"rundll32.exe dfshim.dll,ShOpenVerbShortcut ""C:\New App.appref-ms"";

或者,您可以使用应用程序部署URL(您可以通过在文本编辑器中打开.appref-ms文件来查看它),而不是依赖于快捷方式路径:

inParams["CommandLine"] = @"rundll32.exe dfshim.dll,ShOpenVerbApplication http://github-windows.s3.amazonaws.com/GitHub.application";

请注意,Win32_Process.Create无法远程创建交互式进程。

答案 1 :(得分:0)

您遇到的错误是什么?

顺便说一下,您使用的命令行路径似乎存在两个问题。

  1. 开始菜单文件夹IMO位于C:\ Documents and Settings \“Usernamehere”\ StartMenu。
  2. 我不确定,但我认为您无法远程运行位于用户个人资料中的程序。尝试将程序安装到其他位置,例如c:\ program files,然后尝试调用它。
  3. 除此之外,如果你提到你得到的确切错误,那么诊断问题会有所帮助。