2

ランチャーを介してサブアプリケーションを起動するアプリケーションスイートがあります。ランチャーは、クエリ文字列を使用して ClickOnce Url を介して他のアプリを呼び出します。これを行う方法は、以下のコードを使用します。

 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では、queryStringは常に空であるようです。

そしてMSDNによると、クエリ文字列を取得するために次の変更を行いました:

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

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

これは、ブラウザー (インターネット エクスプローラー) を介してアプリケーションを呼び出すと機能しているようです。ただし、同じ URL を Web ブラウザ コントロール経由で呼び出すと、クリックオンス エラーが発生します。

これに関するアイデアはありますか?

ありがとう、アニーフ

4

1 に答える 1

0

Windows 8 で WebBrowser クラスを使用して clickonce .application ファイルに移動しようとしたときに同じ問題が発生しました。Windows 7 以前では、.application ファイルはサーバー上で実行され、正常に動作します。

回避策は、clickonce パッケージをデプロイするときに -ProviderURL 引数を mage に追加することでした。ProviderURL の値は、.application ファイルへの完全修飾パスです。

于 2013-04-05T21:25:28.790 に答える