123456789101112131415161718192021222324252627282930313233343536 |
- using System;
- using System.Collections.Generic;
- using System.Diagnostics;
- using System.IO;
- using System.Linq;
- using System.Reflection;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- namespace MediaBrowser.Uninstaller
- {
- class Program
- {
- static void Main(string[] args)
- {
- var product = args.Length > 1 ? args[1] : "server";
- //copy the real program to a temp location so we can delete everything here (including us)
- var tempExe = Path.Combine(Path.GetTempPath(), "MediaBrowser.Uninstaller.Execute.exe");
- var tempConfig = Path.Combine(Path.GetTempPath(), "MediaBrowser.Uninstaller.Execute.exe.config");
- //using (var file = File.Create(tempExe, 4096, FileOptions.DeleteOnClose))
- {
- //copy the real uninstaller to temp location
- var sourceDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? "";
- File.WriteAllBytes(tempExe, File.ReadAllBytes(Path.Combine(sourceDir, "MediaBrowser.Uninstaller.Execute.exe")));
- File.Copy(Path.Combine(sourceDir, "MediaBrowser.Uninstaller.Execute.exe.config"), tempConfig, true);
- //get our pid to pass to the uninstaller so it can wait for us to exit
- var pid = Process.GetCurrentProcess().Id;
- //kick off the copy
- Process.Start(tempExe, product + " " + pid);
- //and shut down
- }
- }
- }
- }
|