| Index: experimental/visual_studio_plugin/src/MsiHelp/MainForm.cs
|
| diff --git a/experimental/visual_studio_plugin/src/MsiHelp/MainForm.cs b/experimental/visual_studio_plugin/src/MsiHelp/MainForm.cs
|
| deleted file mode 100644
|
| index 9b55f511350deafc53f5265a024fd93e2602c015..0000000000000000000000000000000000000000
|
| --- a/experimental/visual_studio_plugin/src/MsiHelp/MainForm.cs
|
| +++ /dev/null
|
| @@ -1,153 +0,0 @@
|
| -using System;
|
| -using System.Collections.Generic;
|
| -using System.ComponentModel;
|
| -using System.Data;
|
| -using System.Diagnostics;
|
| -using System.Drawing;
|
| -using System.Linq;
|
| -using System.Text;
|
| -using System.Windows.Forms;
|
| -using Microsoft.Win32;
|
| -
|
| -namespace MsiHelp
|
| -{
|
| - public enum MainFormResultCode {
|
| - Unknown = -1,
|
| - Ok = 0,
|
| - UserCancelled,
|
| - BadArgs,
|
| - Error,
|
| - }
|
| -
|
| - public partial class MainForm : Form
|
| - {
|
| - private static readonly string kVsName = "devenv";
|
| -
|
| - public MainForm()
|
| - {
|
| - InitializeComponent();
|
| - ResultCode = MainFormResultCode.Unknown;
|
| - this.Visible = false;
|
| - }
|
| -
|
| - public MainFormResultCode ResultCode { get; set; }
|
| - public Exception Error { get; set; }
|
| -
|
| - protected override void OnLoad(EventArgs e)
|
| - {
|
| - this.Visible = false;
|
| - string[] args = Environment.GetCommandLineArgs();
|
| - if (args.Length != 2) {
|
| - MessageBox.Show(this, "Oops: wrong number of arguments", "MsiHelp", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
| - ResultCode = MainFormResultCode.BadArgs;
|
| - Close();
|
| - }
|
| -
|
| - if (args[1] == "test") {
|
| - this.Text = "Test Installer";
|
| - message_.Text = "Wasting time...";
|
| - worker_.DoWork += new DoWorkEventHandler(TestWorker);
|
| - } else if (args[1] == "killvs") {
|
| - this.Visible = true;
|
| - Text = "Close Visual Studio";
|
| - message_.Text = "Waiting for Visual Studio to close...";
|
| - worker_.DoWork += new DoWorkEventHandler(KillVsWorker);
|
| - } else if (args[1] == "setup") {
|
| - this.Visible = true;
|
| - Text = "Registering Packages";
|
| - message_.Text = "Registering packages with Visual Studio...";
|
| - worker_.DoWork += new DoWorkEventHandler(DevEnvSetup);
|
| - }
|
| -
|
| - worker_.RunWorkerAsync();
|
| - base.OnLoad(e);
|
| - }
|
| -
|
| - void DevEnvSetup(object sender, DoWorkEventArgs e)
|
| - {
|
| -// string vsdir = Registry.GetValue("")
|
| - }
|
| -
|
| - void KillVsWorker(object sender, DoWorkEventArgs e)
|
| - {
|
| - var vsProcesses = new List<Process>(Process.GetProcessesByName(kVsName));
|
| -
|
| - if (vsProcesses.Count == 0) {
|
| - Finish(MainFormResultCode.Ok);
|
| - }
|
| -
|
| - DialogResult autoClose = (DialogResult) Invoke(new InvokeDialogHandler( () => AutoCloseMessage() ));
|
| -
|
| - try {
|
| - switch (autoClose) {
|
| - case DialogResult.Yes:
|
| - Invoke(
|
| - new InvokeHandler(
|
| - () => message_.Text = "Closing Visual Studio..."));
|
| - foreach (var vsProcess in vsProcesses) {
|
| - vsProcess.CloseMainWindow();
|
| - }
|
| - break;
|
| - case DialogResult.No:
|
| - break;
|
| - case DialogResult.Cancel:
|
| - Finish(MainFormResultCode.UserCancelled);
|
| - break;
|
| - }
|
| -
|
| - List<Process> deaders = new List<Process>();
|
| - while (vsProcesses.Count > 0) {
|
| - foreach (var vsProcess in vsProcesses) {
|
| - if (vsProcess.HasExited) {
|
| - deaders.Add(vsProcess);
|
| - }
|
| - }
|
| - foreach (var process in deaders) {
|
| - vsProcesses.Remove(process);
|
| - process.Dispose();
|
| - }
|
| - deaders.Clear();
|
| - }
|
| - } catch (Exception ex) {
|
| - Error = ex;
|
| - Finish(MainFormResultCode.Error);
|
| - return;
|
| - }
|
| - Finish(MainFormResultCode.Ok);
|
| - }
|
| -
|
| - private DialogResult AutoCloseMessage() {
|
| - return MessageBox.Show(
|
| - this,
|
| - "Installation cannot proceed until Visual Studio is closed.\n" +
|
| - "Close Visual Studio automatically?\n" +
|
| - "(Select 'Yes' to close Visual Studio automatically. Select 'No' to close it yourself. Select 'Cancel' to abort the install process.",
|
| - "Installer",
|
| - MessageBoxButtons.YesNoCancel,
|
| - MessageBoxIcon.Question);
|
| - }
|
| -
|
| - private delegate void InvokeHandler();
|
| -
|
| - private delegate DialogResult InvokeDialogHandler();
|
| - private void OnFinished(MainFormResultCode code) {
|
| - ResultCode = code;
|
| - Close();
|
| - }
|
| -
|
| - private void Finish(MainFormResultCode code) {
|
| - this.Invoke(new InvokeHandler(() => OnFinished(code)));
|
| - }
|
| -
|
| - void TestWorker(object sender, DoWorkEventArgs e)
|
| - {
|
| - System.Threading.Thread.Sleep(5000);
|
| - Finish(MainFormResultCode.Ok);
|
| - }
|
| -
|
| - private void button1_Click(object sender, EventArgs e)
|
| - {
|
| - OnFinished(MainFormResultCode.UserCancelled);
|
| - }
|
| - }
|
| -}
|
|
|