2012-11-14 53 views
2

我们有一个应用程序套件,它通过启动器启动子应用程序。启动程序通过查询字符串通过ClickOnce Url调用其他应用程序。我们这样做的方法是通过下面的代码:通过web url启动ClickOnce应用程序在Windows 8中不起作用

WebBrowser webBrowser1 = new WebBrowser(); 
webBrowser1.Navigate(url); 

和我们的消费与下面的代码的客户端应用程序的查询字符串:

string url = AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData[0]; 
      if (!isNetworkDeployed) 
      { 
       return false; 
      } 
      string queryString = (new Uri(url)).Query; 

,似乎查询字符串始终是在Windows 8中是空的。

然后根据MSDN我做了以下的变化来获取查询字符串:

 private NameValueCollection GetQueryStringParameters() 
    { 
     NameValueCollection nameValueTable = new NameValueCollection(); 

     if (ApplicationDeployment.IsNetworkDeployed) 
     { 
      string queryString = ApplicationDeployment.CurrentDeployment.ActivationUri.Query; 
     } 
     return (nameValueTable); 
    } 

,当我通过浏览器(Internet Explorer)调用应用程序时,这似乎正在工作。但当通过网页浏览器控制调用时,它会产生clickonce错误。

对此的任何想法?

感谢, Aneef

回答

0

我看到使用WebBrowser类,并试图导航到我们的ClickOnce。应用文件在Windows 8。应用文件会下载,然后在本地运行,导致文件无法找到同样的问题错误。在Windows 7及更低版本中,.application文件在服务器上执行,可以正常工作。

解决方法是在部署clickonce包时将-ProviderURL参数添加到图像中。 ProviderURL的值是.application文件的完全限定路径。

+0

对于downvote感到抱歉。这是一个错误的错误,这对我有用。 – Beta033

相关问题