c# - 无法通过c#删除.exe文件

标签 c# winforms

我在 Windows 窗体应用程序中有一个更新按钮。当用户单击更新按钮时,应用程序会检查应用程序的当前版本与从 Web 服务获取的服务器中可用的版本。如果版本不匹配,应用将从webservice获取的路径下载新版本。

我目前在同一个解决方案中使用两个项目

  1. 应用运行的主项目

  2. 更新项目-它的目的是用来删除.exe文件和下载新的.exe文件。 (更新项目添加为主项目的引用)

问题是当我尝试通过更新项目中的代码删除 mainproject.exe 时,它​​显示一个异常“捕获到未经授权的异常”。有谁知道为什么会这样?或者有没有人有更好的主意在应用程序中使用更新功能??

这是我用于删除文件的代码。

Unauthorized Exception in Windows Forms - C#

编辑:-

当我调试应用程序时,我能够删除 .exe 文件。但是当我在桌面上安装后尝试删除应用程序时,我再次收到异常消息“访问被拒绝”。

最佳答案

在你的更新按钮中,你启动了另一个小应用程序作为一个单独的进程,在小应用程序中,你可以使用以下代码杀死你的进程,然后删除原来的应用程序。

try
{
    Process [] proc Process.GetProcessesByName("YourAppName");
    proc[0].Kill();
}

关于c# - 无法通过c#删除.exe文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18325805/

相关文章:

c# - 消息框快捷方式

c# - 如何在 C# Winform 中更改文本框中某些子字符串的字体颜色?

c# - 尝试解析 HTML 时出错

c# - 如何在调试时使用 ToString 以外的委托(delegate)来显示对象的值?

c# - 保护区与在基类中使用私有(private)区域

c# - 为什么此通用代码中不允许隐式转换?

.net - 这个控件的名称是什么?

.net - 使 WinForm 窗体在多个屏幕上最大化到桌面高度

c# - 使用 .NET 进行 Excel 文件解析/抓取

c# - Expression_Host 程序集的数量不断增长