我们的用户从开始菜单/桌面快捷方式运行我们的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是”。
答案 0 :(得分:8)
ApplicationDeployment.CurrentDeployment.ActivationUri
如果您在“发布清单”选项中激活“允许将URL参数传递给应用程序”复选框,则不为空。
否则使用ApplicationDeployment.CurrentDeployment.UpdateLocation
!
答案 1 :(得分:2)
尝试ApplicationDeployment.UpdateLocation属性。除非您在项目属性中配置了不同的更新URL - >发布 - >更新 - >在Visual Studio中更新位置,它应该返回原始部署URL。
答案 2 :(得分:1)
我认为您所能做的就是在应用程序下载并首次运行时将URI保存在某处,然后在应用程序脱机运行时引用此值。