从开始菜单运行时,ClickOnce应用程序将获取最初从其下载的URL

时间:2012-04-17 12:53:21

标签: clickonce

我们的用户从开始菜单/桌面快捷方式运行我们的ClickOnce WPF应用程序。每当我们需要获取最初下载的URL时应用程序启动。我尝试使用ActivationUri,但只有当它直接从网站setup.exe而不是桌面/开始菜单快捷方式运行时才有效:

string activationUri = "???";
try
{
    if (System.Deployment.Application.ApplicationDeployment.CurrentDeployment == null)
    {
        activationUri = "currentDeployment is null";
    }
    else if (System.Deployment.Application.ApplicationDeployment.CurrentDeployment.ActivationUri == null)
    {
        activationUri = "deployment not null but uri is";
    }
    else if (System.Deployment.Application.ApplicationDeployment.CurrentDeployment.ActivationUri != null)
    {
        activationUri =
            System.Deployment.Application.ApplicationDeployment.CurrentDeployment.ActivationUri.AbsoluteUri;
    }
}
catch (Exception ex)
{
    activationUri = ex.Message;
    //Error getting the URL so put question mark
}

MessageBox.Show(activationUri);

当从设置(从网站)运行时,我会得到URL,并且每隔一段时间我会得到“部署不为空但URI是”。

3 个答案:

答案 0 :(得分:8)

ApplicationDeployment.CurrentDeployment.ActivationUri
如果您在“发布清单”选项中激活“允许将URL参数传递给应用程序”复选框,则

不为空。

否则使用ApplicationDeployment.CurrentDeployment.UpdateLocation

答案 1 :(得分:2)

尝试ApplicationDeployment.UpdateLocation属性。除非您在项目属性中配置了不同的更新URL - >发布 - >更新 - >在Visual Studio中更新位置,它应该返回原始部署URL。

答案 2 :(得分:1)

我认为您所能做的就是在应用程序下载并首次运行时将URI保存在某处,然后在应用程序脱机运行时引用此值。