使用查询字符串参数从 url 下载自定义设置
Download customized setup from url with the query string parameters
我做了一个 windows 服务应用程序,我想创建一个安装文件。当用户通过我们的网站 url 使用查询参数请求应用程序时,(例如:http://test.com/setup.exe?id=1212)我需要将当前的 app.config 键值更改为该查询参数值。
我还需要在新版本准备就绪时自动更新此应用程序。因此 windows 的 ClickOnce 或 squirrel 可能是一种选择,但因为我找不到实现上述任务的方法。
以下问题有点相似,但没有解决这个问题:
* 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*?
我怎样才能做到这一点?
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 change value
我做了一个 windows 服务应用程序,我想创建一个安装文件。当用户通过我们的网站 url 使用查询参数请求应用程序时,(例如:http://test.com/setup.exe?id=1212)我需要将当前的 app.config 键值更改为该查询参数值。
我还需要在新版本准备就绪时自动更新此应用程序。因此 windows 的 ClickOnce 或 squirrel 可能是一种选择,但因为我找不到实现上述任务的方法。
以下问题有点相似,但没有解决这个问题: * 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*?
我怎样才能做到这一点?
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 change value