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

How can I run some code after application exiting

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

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

我可以管理更新,但是当我复制新文件时,我有一个错误说一些文件正在使用中(这确实是正常的)。

我该怎么做?

例如,我的"update"方法如下:

            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);
        }

非常感谢您帮助我完成这项任务。

无法让程序在退出后执行代码。我会说这样做有 3 个明智的选择。

  1. 让您的程序进入 "update state",它基本上关闭所有 files/streams 和其他所有内容,然后将文件复制过来。您不应该打开任何外部文件,因此不会出现正在使用的文件错误。
  2. 有单独的更新程序。基本上,一旦您尝试在主程序中进行更新,这将启动更新程序,然后在加载后关闭主程序。一旦更新程序复制了所有相关文件,就可以再次启动主程序。
  3. 正如 felix-b 评论的那样,有许多现有的解决方案可以处理您的程序更新。例如 https://github.com/ravibpatel/AutoUpdater.NET 或只是 google .NET 应用程序更新程序。