2012-11-14 80 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

相關問題