1

설치 파일을 만들 Windows 서비스 응용 프로그램을 만들었습니다. 사용자가 쿼리 매개 변수 (예 : http://test.com/setup.exe?id=1212)로 웹 사이트 url을 통해 응용 프로그램을 요청하면 현재 app.config 키 값을 해당 쿼리 매개 변수 값으로 변경해야합니다.URL에서 쿼리 문자열 매개 변수로 사용자 정의 설치 다운로드

또한 새로운 릴리스가 준비되면이 애플리케이션을 자동으로 업데이트해야합니다. 그래서 ClickOnce 또는 다람쥐 창문에 대한 옵션을 수도 있지만 위의 작업을 달성하는 방법을 찾을 수 없습니다.

다음 질문은 조금 비슷하지만이 문제를 해결하지 않습니다 * 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