C# - Process.Start一个ClickOnce应用程序?什么网址?

时间:2010-07-13 11:40:27

标签: c# wpf process clickonce

我已经为WPF做了3个月的新手,并尝试构建一个有趣的appy应用程序(app name launcher type thingie by name)。

我似乎无法按进程名称启动ClickOnce应用程序。

换句话说:

  • 的Process.Start( “火狐”); //会工作
  • 的Process.Start( “MetroTwit”); //一个ClickOnce应用程序 - 将无法正常工作

我读过你应该通过网址调用它?但是,您在哪里找到已安装的clickonce应用程序的URL?

理想情况下,我想每分钟刷新一次安装在用户系统上的应用程序列表(程序文件& clickonce& AIR客户端),并对类型等进行模糊搜索。

非常感谢。

7 个答案:

答案 0 :(得分:11)

您甚至不需要解析启动文件夹。该创业公司的位置在这里:

shortcutName = 
  string.Concat(Environment.GetFolderPath(Environment.SpecialFolder.Programs),
                "\\", publisher_name, "\\", product_name, ".appref-ms");

其中publisher_name和product_name是发布属性中“选项”对话框中设置的名称。

答案 1 :(得分:5)

有两种ClickOnce应用程序(在发布应用程序时设置)安装在开始菜单上的应用程序和只能从网址运行的应用程序。

安装在开始菜单中的应用程序可以在开始菜单文件夹下找到(令人惊讶),它们具有APPREF-MS扩展名的特殊类型的快捷方式。

您可以使用Process.Start运行APPREF-MS文件。

配置为仅从网址运行的应用程序,您必须从网址运行它们。

答案 2 :(得分:3)

Process.Start相当于执行Start,Run ..然后在那里输入一些文本。您必须输入可使用PATH环境变量找到的可执行文件,或者您可以指定指向要运行的.application文件的URL。例如。 http://publish.url.com/publish/myapp.application

希望有所帮助!

答案 3 :(得分:2)

添加到@Kieren的答案:Process.Start("Firefox")的工作原因是Firefox将自己安装在注册表中的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe密钥中。

答案 4 :(得分:1)

您要查找的URL是用于安装的URL。是的,听起来很奇怪。 ClickOnce有点奇怪。不幸的是,ClickOnce不会安装到Program Files文件夹中,而是将其自身隐藏在用户的AppData文件夹中。取决于您是通过Web安装还是通过CD / DVD选项安装,并将确定解决此问题的难易程度。祝你好运!

答案 5 :(得分:0)

Imho,最好的方法是:

Process.Start("rundll32.exe", "dfshim.dll,ShOpenVerbApplication " + ApplicationURL); 

答案 6 :(得分:-2)

以下是如何启动clickonce应用程序,它每次都有效。

System.Diagnostics.Process.Start("http://webinstalls.somecompany.com/LApproval/StartApproval.application");