应用程序退出后如何运行一些代码

时间:2019-06-04 14:23:05

标签: c# wpf exit

退出应用程序后,我需要运行一些代码(这是C#和WPF应用程序,由VisualStudio开发)。

基本上,当有可用的更新时,应用程序应退出,将新文件(从我们的服务器复制到用户计算机),然后再次打开(当然,在用户确认并进行所有其他检查之后)。

我能够管理更新,但是当我复制新文件时,出现错误,提示某些文件正在使用中(这确实很正常)。

我该怎么做?

例如,我的“更新”方法如下:

            try
        {
            // Need to close the app here i guess

            // File copying : it's ok here

            // Open the app again
        }
        catch (Exception e)
        {
            MessageBox.Show("Cannot update\n" + e.Message, "MyApp", MessageBoxButton.OK, MessageBoxImage.Error);

            Environment.Exit(1);
        }

非常感谢您帮助我执行此任务。

1 个答案:

答案 0 :(得分:0)

退出程序后,没有任何方法可以让程序执行代码。我会说这样做有3种明智的选择。

  1. 让程序进入“更新状态”,在该状态下,它基本上关闭所有文件/流以及所有其他内容,然后将文件复制过来。您不应该打开任何外部文件,这样使用中的文件错误就不会出现。
  2. 具有单独的更新程序。基本上,一旦您尝试在主程序中进行更新,这将启动更新程序,然后在加载后关闭主程序。更新程序复制完所有相关文件后,即可再次启动主程序。
  3. 如felix-b所述,有许多现有的解决方案可以处理程序的更新。例如https://github.com/ravibpatel/AutoUpdater.NET或仅是Google .NET应用程序更新程序。