From 504a6c5d898ae6d3d22b93b9add76b89cb434d26 Mon Sep 17 00:00:00 2001
From: 2dust <31833384+2dust@users.noreply.github.com>
Date: Thu, 2 Jan 2020 13:49:37 +0800
Subject: [PATCH] upgrade
---
v2rayN/v2rayUpgrade/MainForm.cs | 41 ++++++++++++++++++++-----
v2rayN/v2rayUpgrade/v2rayUpgrade.csproj | 1 +
2 files changed, 34 insertions(+), 8 deletions(-)
diff --git a/v2rayN/v2rayUpgrade/MainForm.cs b/v2rayN/v2rayUpgrade/MainForm.cs
index 281f5d4b..6a597981 100644
--- a/v2rayN/v2rayUpgrade/MainForm.cs
+++ b/v2rayN/v2rayUpgrade/MainForm.cs
@@ -1,14 +1,7 @@
using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
using System.Diagnostics;
-using System.Drawing;
using System.IO;
using System.IO.Compression;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
using System.Windows.Forms;
namespace v2rayUpgrade
@@ -16,6 +9,7 @@ namespace v2rayUpgrade
public partial class MainForm : Form
{
private string[] _args;
+ private string _tempFileName = "v2rayUpgradeTemp.zip";
public MainForm(string[] args)
@@ -35,9 +29,36 @@ namespace v2rayUpgrade
{
return;
}
+
try
{
- var fileName = _args[0];
+ Process[] existing = Process.GetProcessesByName("v2rayN");
+ foreach (Process p in existing)
+ {
+ var path = p.MainModule.FileName;
+ if (path == GetPath("v2rayN.exe"))
+ {
+ p.Kill();
+ p.WaitForExit(100);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show("Failed to close v2rayN(关闭v2rayN失败)." + ex.StackTrace);
+ return;
+ }
+
+ var fileName = GetPath(_tempFileName);
+ try
+ {
+ File.Copy(_args[0], fileName);
+ if (!File.Exists(fileName))
+ {
+ MessageBox.Show("Upgrade Failed, File Not Exist(升级失败,文件不存在).");
+ return;
+ }
+
var startKey = "v2rayN/";
using (ZipArchive archive = ZipFile.OpenRead(fileName))
@@ -67,6 +88,10 @@ namespace v2rayUpgrade
MessageBox.Show("Upgrade Failed(升级失败)." + ex.StackTrace);
return;
}
+ finally
+ {
+ File.Delete(fileName);
+ }
MessageBox.Show("Upgrade successed(升级成功)");
diff --git a/v2rayN/v2rayUpgrade/v2rayUpgrade.csproj b/v2rayN/v2rayUpgrade/v2rayUpgrade.csproj
index f7879414..a36e3f55 100644
--- a/v2rayN/v2rayUpgrade/v2rayUpgrade.csproj
+++ b/v2rayN/v2rayUpgrade/v2rayUpgrade.csproj
@@ -23,6 +23,7 @@
DEBUG;TRACE
prompt
4
+ false
AnyCPU