1

Я сделал приложение для Windows, которое я хочу создать установочный файл. Когда приложение запроса пользователя через наш сайт url с параметрами запроса (например: http://test.com/setup.exe?id=1212) Мне нужно изменить текущее значение ключа 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 за быстрый ответ. Меня беспокоило, когда, если я изменю конфигурационный файл, это вызовет изменение хеш-файла, поэтому мы не сможем его обновить с помощью 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

Смежные вопросы