相关疑难解决方法(0)

如何在第一次运行ClickOnce部署的应用程序时检测到?

我有一个ClickOnce部署的应用程序,我正在使用它来检测第一次运行新部署时:

if (ApplicationDeployment.IsNetworkDeployed
    && ApplicationDeployment.CurrentDeployment.IsFirstRun)
{
    // Display release notes so user knows what's new
}
Run Code Online (Sandbox Code Playgroud)

在ClickOnce执行自动更新后,它似乎按预期工作.

但是当用户在安装站点上发布publish.htm并手动安装新版本时,它根本不起作用.有没有办法可靠地检测这两种情况?

编辑:我正在尝试解决的情况:有时用户会听到已发布更新并手动转到publish.htm以获取新版本,而不是启动应用程序并让ClickOnce处理升级.对于ClickOnce,这显然与首次安装无法区分.真的吗?

解决方案代码:我最终使用以下关键部分创建了一个ClickOnce帮助程序类:

    public static bool IsFirstRun
    {
        get
        {
            if (!IsNetworkDeployed)
                return false; // not applicable == bool default value

            if (!File.Exists(VersionFileName))
                return true;

            return (GetLastRunVersion() != Version.ToString());
        }
    }

    public static void StoreCurrentVersion()
    {
        File.WriteAllText(VersionFileName, Version.ToString());
    }

    public static string GetLastRunVersion()
    {
        using (var stream = File.OpenText(VersionFileName))
        {
            return stream.ReadToEnd();
        }
    }

    public static string VersionFileName
    { …
Run Code Online (Sandbox Code Playgroud)

.net c# clickonce

8
推荐指数
1
解决办法
5396
查看次数

标签 统计

.net ×1

c# ×1

clickonce ×1