代码之家  ›  专栏  ›  技术社区  ›  Chris Holmes

“Application.Restart”在ClickOnce部署的应用程序中不起作用[重复]

  •  10
  • Chris Holmes  · 技术社区  · 15 年前

    可能重复:
    Why is Application.Restart() not reliable?

    the code straight from MSDN . 这会更新我的应用程序,但是 Restart()

    我加了一个 MenuItem 给我的 Form 为了证实这一点 完全有效:

    private void restartToolStripMenuItem_Click(object sender, EventArgs e)
    {
        Application.Restart();
    }
    

    这将重新启动应用程序(当然,它不执行任何更新,并且是由用户发起的,因此它相当无用)。

    我对这个申请没有别的打算。关闭时没有窗体的事件处理程序,没有。这是最基本的 Windows Forms 我可以构建的应用程序(它只是显示一个资源 JPEG 在一个 ImagePanel ).

    为什么 不在这里工作?

    5 回复  |  直到 7 年前
        1
  •  5
  •   Peter Mortensen code4jhon    12 年前

    是你的申请 Windows Forms WPF Application.Restart 只存在于Windows窗体中 Application 对象( System.Windows.Forms.Application )在WPF下运行的应用程序不支持 应用程序 ( System.Windows.Applications

        2
  •  4
  •   Timothy Carter    15 年前

    如果使用互斥锁或类似的东西来确保一次只运行一个应用程序实例,则会导致此问题。

        3
  •  0
  •   Matt Hanson    15 年前

    您确定正在调用应用程序。从主窗体重新启动吗?如果使用.ShowDialog调用窗体,然后从该窗体调用应用程序.Restart调用该窗体,则它将无法工作,因为.ShowDialog会导致对话框窗体在单独的线程上运行。

        4
  •  0
  •   Community T.Woody    7 年前

    试着用 BeginInvoke 以防万一它不在主要的 STA

        5
  •  -1
  •   Peter Mortensen code4jhon    12 年前

    尝试提出一个新的流程,也许这可以解决问题:

    Process.Start(Application.ExecutablePath);