1

セットアップファイルを作成したいWindowsサービスアプリを作りました。ユーザーがクエリ パラメーターを使用して Web サイトの URL を介してアプリケーションを要求する場合 (例: http://test.com/setup.exe?id=1212 )、現在の app.config キー値をそのクエリ パラメーター値に変更する必要があります。

また、新しいリリースの準備ができたら、このアプリケーションを自動的に更新する必要があります。したがって、Windows用のClickOnceまたはsquirrelはオプションかもしれませんが、上記のタスクを達成する方法が見つからなかったためです。

次の質問は少し似ていますが、この問題を解決しません: * ClickOnce アプリケーションでクエリ文字列情報を取得するにはどうすればよいですか? * ClickOnce: クエリ文字列の値を *インストーラーを介して * アプリに渡すにはどうすればよいですか?

どうすればこれを達成できますか?

4

1 に答える 1

1

1. まず、クエリ文字列パラメータをアプリケーションに渡せるようにします。

ここに画像の説明を入力

2.次のようにクエリ文字列にアクセスします

private NameValueCollection GetQueryString()
{
    if (ApplicationDeployment.IsNetworkDeployed)
    {
        try
        {
            string rawQueryString = String.Empty;
            rawQueryString = ApplicationDeployment.CurrentDeployment.ActivationUri.Query;
            NameValueCollection queryString;
            try
            {
                queryString = HttpUtility.ParseQueryString(ApplicationDeployment.CurrentDeployment.ActivationUri.Query);
            }
            catch (Exception ex)
            {
                throw new Exception("Unauthorized access!");
            }
            return queryString;
        }
        catch (Exception ex)
        {
            if (ApplicationDeployment.CurrentDeployment == null)
            {
                throw new Exception("Deployment error");
            }
            else if (ApplicationDeployment.CurrentDeployment.ActivationUri == null)
            {
                throw new Exception("Unable to read data");
            }
            else
            {
                throw new Exception("Error with deployment: " + ex.Message);
            }
        }
    }
    else
    {
        throw new Exception("This application may not be accessed directly");
    }
}

3. app.config を更新する

App.Config 変更値

于 2016-08-23T10:51:26.690 に答える