1

セットアップファイルを作成するWindowsサービスアプリケーションを作成しました。ユーザーがクエリパラメータ(例:http://test.com/setup.exe?id=1212)を使用してウェブサイトURLを介してアプリケーションをリクエストすると、現在のapp.configキー値をそのクエリパラメータ値に変更する必要があります。URLからクエリ文字列パラメータを使用してカスタマイズされた設定をダウンロード

また、新しいリリースの準備が整うと自動的にこのアプリケーションを更新する必要があります。だからClickOnceやWindows用のリスはオプションかもしれませんが、私は上記の作業を達成する方法を見つけることができませんでした。

以下の質問は少し似ていますが、この問題を解決していない: * How can we retrieve query string information in a ClickOnce Application? * ClickOnce: How do I pass a querystring value to my app *through the installer*?

私はこれをどのように達成することができますか?

+0

?アプリケーションでクエリ文字列を正常に受け取っていますか? – Zesty

+0

あなたのために働くかどうか私に教えてください。 – Zesty

+0

素早い返信のために@Zestyに感謝します。私の懸念は、configファイルを変更するとハッシュファイルが変更されるため、clickonceで更新できなくなる可能性があるということでした。私はあなたの答えをチェックし、結果を知らせます。再度、感謝します。 – LittleOne

答えて

1

1.最初に、クエリ文字列パラメータをアプリケーションに渡すことができます。

enter image description here

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 change value

関連する問題