繁体   English   中英

ClickOnce:“未设置应用程序身份”

[英]ClickOnce: “Application identity is not set”

我有一个很旧的Windows窗体应用程序,目前正在尝试为其构建ClickOnce安装程序。

一切都很好,除了从应用程序内部访问ApplicationDeployment.CurrentDeployment的任何尝试都会导致:

未设置应用程序身份。

我在Web上发现了很多此类帖子,尤其是在Stack Overflow上,但是人们在调试器上运行他们的应用程序,或者根本不在网络上部署本地版本。

我强调在我的情况下,该应用程序是网络部署的(可脱机使用)。 我通过单击ClickOnce安装程序创建的桌面图标来运行它。 更新工作正常(尝试发布更新以确保它可以运行)。

但是,无法访问ApplicationDeployment.CurrentDeployment。

我做错了什么?

实际上,我只是试图读取应用程序的版本,该版本显示在“程序和功能”小程序中。 有没有一种方法可以不使用ClickOnce API来读取此信息,例如,直接从注册表中读取该信息(我知道这不好)。

代码很简单:

[STAThread]
static void Main(string[] argv)
{
System.Windows.Forms.MessageBox.Show(ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString()); // Crash here
DoSomethingUseful();
}

我已经使用属性完成此操作,并直接在XAML中绑定其值。 我正在使用WPF,但是希望对您有所帮助。

private string _verSion = ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString();
public string verion
{
    get
    {
        return _verSion;
    }
    set
    {
        _verSion = value;
        OnPropertyChanged(() => verion);
    }
}

我尚未使用消息框完成此操作。 您可以尝试相同的方法。 打开一个窗口“关于我们”或其他内容。 取一个字符串并将其绑定到此属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM