1

我制作了一个 Windows 服务应用程序,我想创建一个安装文件。当用户通过我们的网站 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 回答