ClickOnce:“未设置应用程序标识”

时间:2014-07-28 08:50:30

标签: c# deployment installer clickonce

我有一个非常古老的Windows Forms应用程序,我正在尝试构建ClickOnce安装程序。

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

  

未设置应用程序标识。

我在网上发现了很多此类帖子,尤其是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();
}

1 个答案:

答案 0 :(得分:0)

我使用属性完成了此操作并直接将其值绑定在XAML中。我正在使用WPF,但我希望这会有所帮助。

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

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