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