点击一次:“未设置应用程序标识”

本文关键字:设置 应用程序 标识 一次 | 更新日期: 2023-09-27 18:15:06

我有一个很旧的Windows窗体应用程序,我目前正试图建立一个ClickOnce安装程序。

一切都很好,除了任何访问ApplicationDeployment的尝试。应用程序内部的CurrentDeployment结果为:

未设置应用程序标识。

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

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

然而,ApplicationDeployment。当前部署不可访问。

我做错了什么?

事实上,我只是试图阅读应用程序的版本,因为它出现在"程序和功能"小程序。是否有一种方法可以在不使用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);
    }
}

我没有使用消息框完成此操作。你也可以试试。打开"关于我们"之类的窗口。取一个字符串并将其绑定到此属性