diff --git a/VSPackageInstall/Guids.cs b/VSPackageInstall/Guids.cs
deleted file mode 100644
index 5d457be..0000000
--- a/VSPackageInstall/Guids.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-// Guids.cs
-// MUST match guids.h
-using System;
-
-namespace VitaliiGanzha.VSPackageInstall
-{
- static class GuidList
- {
- public const string guidVSPackageInstallPkgString = "a527a9c1-ec2f-46a0-a6e3-371859c5845b";
- public const string guidVSPackageInstallCmdSetString = "4fddc919-41be-47b6-ae59-7125c75d1f1e";
- public const string guidToolWindowPersistanceString = "a6862923-42ae-438f-ac76-7a68be1011e3";
-
- public static readonly Guid guidVSPackageInstallCmdSet = new Guid(guidVSPackageInstallCmdSetString);
- };
-}
\ No newline at end of file
diff --git a/VSPackageInstall/Key.snk b/VSPackageInstall/Key.snk
deleted file mode 100644
index 6a24fe5..0000000
Binary files a/VSPackageInstall/Key.snk and /dev/null differ
diff --git a/VSPackageInstall/MyControl.xaml b/VSPackageInstall/MyControl.xaml
deleted file mode 100644
index 5761443..0000000
--- a/VSPackageInstall/MyControl.xaml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
- VS Ding
-
-
-
-
diff --git a/VSPackageInstall/MyControl.xaml.cs b/VSPackageInstall/MyControl.xaml.cs
deleted file mode 100644
index efbb549..0000000
--- a/VSPackageInstall/MyControl.xaml.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-using System.Windows.Navigation;
-using System.Windows.Shapes;
-
-namespace VitaliiGanzha.VSPackageInstall
-{
- ///
- /// Interaction logic for MyControl.xaml
- ///
- public partial class MyControl : UserControl
- {
- public MyControl()
- {
- InitializeComponent();
- }
-
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1300:SpecifyMessageBoxOptions")]
- private void button1_Click(object sender, RoutedEventArgs e)
- {
- MessageBox.Show(string.Format(System.Globalization.CultureInfo.CurrentUICulture, "We are inside {0}.button1_Click()", this.ToString()),
- "VS Ding");
-
- }
- }
-}
\ No newline at end of file
diff --git a/VSPackageInstall/MyToolWindow.cs b/VSPackageInstall/MyToolWindow.cs
deleted file mode 100644
index db78918..0000000
--- a/VSPackageInstall/MyToolWindow.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-using System;
-using System.Collections;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Windows;
-using System.Runtime.InteropServices;
-using Microsoft.VisualStudio.Shell.Interop;
-using Microsoft.VisualStudio.Shell;
-
-namespace VitaliiGanzha.VSPackageInstall
-{
- ///
- /// This class implements the tool window exposed by this package and hosts a user control.
- ///
- /// In Visual Studio tool windows are composed of a frame (implemented by the shell) and a pane,
- /// usually implemented by the package implementer.
- ///
- /// This class derives from the ToolWindowPane class provided from the MPF in order to use its
- /// implementation of the IVsUIElementPane interface.
- ///
- [Guid("a6862923-42ae-438f-ac76-7a68be1011e3")]
- public class MyToolWindow : ToolWindowPane
- {
- ///
- /// Standard constructor for the tool window.
- ///
- public MyToolWindow() :
- base(null)
- {
- // Set the window title reading it from the resources.
- this.Caption = Resources.ToolWindowTitle;
- // Set the image that will appear on the tab of the window frame
- // when docked with an other window
- // The resource ID correspond to the one defined in the resx file
- // while the Index is the offset in the bitmap strip. Each image in
- // the strip being 16x16.
- this.BitmapResourceID = 301;
- this.BitmapIndex = 1;
-
- // This is the user control hosted by the tool window; Note that, even if this class implements IDisposable,
- // we are not calling Dispose on this object. This is because ToolWindowPane calls Dispose on
- // the object returned by the Content property.
- base.Content = new MyControl();
- }
- }
-}
diff --git a/VSPackageInstall/PkgCmdID.cs b/VSPackageInstall/PkgCmdID.cs
deleted file mode 100644
index 2498f9e..0000000
--- a/VSPackageInstall/PkgCmdID.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-// PkgCmdID.cs
-// MUST match PkgCmdID.h
-using System;
-
-namespace VitaliiGanzha.VSPackageInstall
-{
- static class PkgCmdIDList
- {
- public const uint cmdidVsDing = 0x100;
- public const uint cmdidVsDingWnd = 0x101;
-
- };
-}
\ No newline at end of file
diff --git a/VSPackageInstall/Resources/Images.png b/VSPackageInstall/Resources/Images.png
deleted file mode 100644
index bf17e6b..0000000
Binary files a/VSPackageInstall/Resources/Images.png and /dev/null differ
diff --git a/VSPackageInstall/VSPackageInstall.vsct b/VSPackageInstall/VSPackageInstall.vsct
deleted file mode 100644
index a1070ce..0000000
--- a/VSPackageInstall/VSPackageInstall.vsct
+++ /dev/null
@@ -1,125 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/VSPackageInstall/VSPackageInstallPackage.cs b/VSPackageInstall/VSPackageInstallPackage.cs
deleted file mode 100644
index 156ffa7..0000000
--- a/VSPackageInstall/VSPackageInstallPackage.cs
+++ /dev/null
@@ -1,147 +0,0 @@
-using System;
-using System.Diagnostics;
-using System.Globalization;
-using System.IO;
-using System.Runtime.InteropServices;
-using System.ComponentModel.Design;
-using EnvDTE;
-using EnvDTE80;
-using Microsoft.Win32;
-using Microsoft.VisualStudio;
-using Microsoft.VisualStudio.Shell.Interop;
-using Microsoft.VisualStudio.OLE.Interop;
-using Microsoft.VisualStudio.Shell;
-
-namespace VitaliiGanzha.VSPackageInstall
-{
- ///
- /// This is the class that implements the package exposed by this assembly.
- ///
- /// The minimum requirement for a class to be considered a valid package for Visual Studio
- /// is to implement the IVsPackage interface and register itself with the shell.
- /// This package uses the helper classes defined inside the Managed Package Framework (MPF)
- /// to do it: it derives from the Package class that provides the implementation of the
- /// IVsPackage interface and uses the registration attributes defined in the framework to
- /// register itself and its components with the shell.
- ///
- // This attribute tells the PkgDef creation utility (CreatePkgDef.exe) that this class is
- // a package.
- [PackageRegistration(UseManagedResourcesOnly = true)]
- // This attribute is used to register the information needed to show this package
- // in the Help/About dialog of Visual Studio.
- [InstalledProductRegistration("#110", "#112", "1.0", IconResourceID = 400)]
- // This attribute is needed to let the shell know that this package exposes some menus.
- [ProvideMenuResource("Menus.ctmenu", 1)]
- // This attribute registers a tool window exposed by this package.
- [ProvideToolWindow(typeof(MyToolWindow))]
- [Guid(GuidList.guidVSPackageInstallPkgString)]
- public sealed class VSPackageInstallPackage : Package
- {
- private DTE2 applicationObject;
- private AddIn addInInstance;
-
- ///
- /// Default constructor of the package.
- /// Inside this method you can place any initialization code that does not require
- /// any Visual Studio service because at this point the package object is created but
- /// not sited yet inside Visual Studio environment. The place to do all the other
- /// initialization is the Initialize method.
- ///
- public VSPackageInstallPackage()
- {
- Debug.WriteLine(string.Format(CultureInfo.CurrentCulture, "Entering constructor for: {0}", this.ToString()));
- }
-
- ///
- /// This function is called when the user clicks the menu item that shows the
- /// tool window. See the Initialize method to see how the menu item is associated to
- /// this function using the OleMenuCommandService service and the MenuCommand class.
- ///
- private void ShowToolWindow(object sender, EventArgs e)
- {
- // Get the instance number 0 of this tool window. This window is single instance so this instance
- // is actually the only one.
- // The last flag is set to true so that if the tool window does not exists it will be created.
- ToolWindowPane window = this.FindToolWindow(typeof(MyToolWindow), 0, true);
- if ((null == window) || (null == window.Frame))
- {
- throw new NotSupportedException(Resources.CanNotCreateWindow);
- }
- IVsWindowFrame windowFrame = (IVsWindowFrame)window.Frame;
- Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(windowFrame.Show());
- }
-
-
- /////////////////////////////////////////////////////////////////////////////
- // Overridden Package Implementation
- #region Package Members
-
- ///
- /// Initialization of the package; this method is called right after the package is sited, so this is the place
- /// where you can put all the initialization code that rely on services provided by VisualStudio.
- ///
- protected override void Initialize()
- {
- try
- {
- Debug.WriteLine(string.Format(CultureInfo.CurrentCulture, "Entering Initialize() of: {0}", this.ToString()));
- base.Initialize();
-
- // Add our command handlers for menu (commands must exist in the .vsct file)
- OleMenuCommandService mcs = GetService(typeof(IMenuCommandService)) as OleMenuCommandService;
- if (null != mcs)
- {
- // Create the command for the menu item.
- CommandID menuCommandID = new CommandID(GuidList.guidVSPackageInstallCmdSet, (int)PkgCmdIDList.cmdidVsDing);
- MenuCommand menuItem = new MenuCommand(MenuItemCallback, menuCommandID);
- mcs.AddCommand(menuItem);
- // Create the command for the tool window
- CommandID toolwndCommandID = new CommandID(GuidList.guidVSPackageInstallCmdSet, (int)PkgCmdIDList.cmdidVsDingWnd);
- MenuCommand menuToolWin = new MenuCommand(ShowToolWindow, toolwndCommandID);
- mcs.AddCommand(menuToolWin);
- }
-
- applicationObject = (DTE2)GetService(typeof(DTE));
- applicationObject.Events.BuildEvents.OnBuildDone += BuildEventsOnOnBuildDone;
- }
- catch (Exception e)
- {
- File.WriteAllText(@"c:\temp\test.txt", e.Message);
- }
-
- }
-
- private void BuildEventsOnOnBuildDone(vsBuildScope scope, vsBuildAction action)
- {
- System.Media.SystemSounds.Asterisk.Play();
- }
-
- #endregion
-
- ///
- /// This function is the callback used to execute a command when the a menu item is clicked.
- /// See the Initialize method to see how the menu item is associated to this function using
- /// the OleMenuCommandService service and the MenuCommand class.
- ///
- private void MenuItemCallback(object sender, EventArgs e)
- {
- // Show a Message Box to prove we were here
- IVsUIShell uiShell = (IVsUIShell)GetService(typeof(SVsUIShell));
- Guid clsid = Guid.Empty;
- int result;
- Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(uiShell.ShowMessageBox(
- 0,
- ref clsid,
- "VSPackageInstall",
- string.Format(CultureInfo.CurrentCulture, "Inside {0}.MenuItemCallback()", this.ToString()),
- string.Empty,
- 0,
- OLEMSGBUTTON.OLEMSGBUTTON_OK,
- OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST,
- OLEMSGICON.OLEMSGICON_INFO,
- 0, // false
- out result));
- }
-
- }
-}
diff --git a/VSPackageInstall/VSPackageInstall_IntegrationTests/IntegrationTest Library/DialogboxPurger.cs b/VSPackageInstall/VSPackageInstall_IntegrationTests/IntegrationTest Library/DialogboxPurger.cs
deleted file mode 100644
index 9061a9f..0000000
--- a/VSPackageInstall/VSPackageInstall_IntegrationTests/IntegrationTest Library/DialogboxPurger.cs
+++ /dev/null
@@ -1,359 +0,0 @@
-
-namespace Microsoft.VsSDK.IntegrationTestLibrary
-{
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Runtime.InteropServices;
- using System.Threading;
- using Microsoft.VisualStudio.Shell.Interop;
- using Microsoft.VisualStudio.Shell;
-
- ///
- /// This class is responsible to close dialog boxes that pop up during different VS Calls
- ///
- internal class DialogBoxPurger : IDisposable
- {
- ///
- /// The default number of milliseconds to wait for the threads to signal to terminate.
- ///
- private const int DefaultMillisecondsToWait = 3500;
-
- ///
- /// Object used for synchronization between thread calls.
- ///
- internal static volatile object Mutex = new object();
-
- ///
- /// The IVsUIShell. This cannot be queried on the working thread from the service provider. Must be done in the main thread.!!
- ///
- private IVsUIShell uiShell;
-
- ///
- /// The button to "press" on the dialog.
- ///
- private int buttonAction;
-
- ///
- /// Thread signales to the calling thread that it is done.
- ///
- private bool exitThread = false;
-
- ///
- /// Calling thread signales to this thread to die.
- ///
- private AutoResetEvent threadDone = new AutoResetEvent(false);
-
- ///
- /// The queued thread started.
- ///
- private AutoResetEvent threadStarted = new AutoResetEvent(false);
-
- ///
- /// The result of the dialogbox closing for all the dialog boxes. That is if there are two of them and one fails this will be false.
- ///
- private bool dialogBoxCloseResult = false;
-
- ///
- /// The expected text to see on the dialog box. If set the thread will continue finding the dialog box with this text.
- ///
- private string expectedDialogBoxText = String.Empty;
-
- ///
- /// The number of the same dialog boxes to wait for.
- /// This is for scenarios when two dialog boxes with the same text are popping up.
- ///
- private int numberOfDialogsToWaitFor = 1;
-
- ///
- /// Has the object been disposed.
- ///
- private bool isDisposed;
-
- ///
- /// Overloaded ctor.
- ///
- /// The botton to "press" on the dialog box.
- /// The number of dialog boxes with the same message to wait for. This is the situation when the same action pops up two of the same dialog boxes
- /// The expected dialog box message to check for.
- internal DialogBoxPurger(int buttonAction, int numberOfDialogsToWaitFor, string expectedDialogMesssage)
- {
- this.buttonAction = buttonAction;
- this.numberOfDialogsToWaitFor = numberOfDialogsToWaitFor;
- this.expectedDialogBoxText = expectedDialogMesssage;
- }
-
- ///
- /// Overloaded ctor.
- ///
- /// The botton to "press" on the dialog box.
- /// The number of dialog boxes with the same message to wait for. This is the situation when the same action pops up two of the same dialog boxes
- internal DialogBoxPurger(int buttonAction, int numberOfDialogsToWaitFor)
- {
- this.buttonAction = buttonAction;
- this.numberOfDialogsToWaitFor = numberOfDialogsToWaitFor;
- }
-
- ///
- /// Overloaded ctor.
- ///
- /// The botton to "press" on the dialog box.
- /// The expected dialog box message to check for.
- internal DialogBoxPurger(int buttonAction, string expectedDialogMesssage)
- {
- this.buttonAction = buttonAction;
- this.expectedDialogBoxText = expectedDialogMesssage;
- }
-
- ///
- /// Overloaded ctor.
- ///
- /// The botton to "press" on the dialog box.
- internal DialogBoxPurger(int buttonAction)
- {
- this.buttonAction = buttonAction;
- }
-
- ///
- #region IDisposable Members
-
- void IDisposable.Dispose()
- {
- if (this.isDisposed)
- {
- return;
- }
-
- this.WaitForDialogThreadToTerminate();
-
- this.isDisposed = true;
- }
-
- ///
- /// Spawns a thread that will start listening to dialog boxes.
- ///
- internal void Start()
- {
- // We ask for the uishell here since we cannot do that on the therad that we will spawn.
- IVsUIShell uiShell = Package.GetGlobalService(typeof(SVsUIShell)) as IVsUIShell;
-
- if (uiShell == null)
- {
- throw new InvalidOperationException("Could not get the uiShell from the serviceProvider");
- }
-
- this.uiShell = uiShell;
-
- System.Threading.Thread thread = new System.Threading.Thread(new ThreadStart(this.HandleDialogBoxes));
- thread.Start();
-
- // We should never deadlock here, hence do not use the lock. Wait to be sure that the thread started.
- this.threadStarted.WaitOne(3500, false);
- }
-
- ///
- /// Waits for the dialog box close thread to terminate. If the thread does not signal back within millisecondsToWait that it is shutting down,
- /// then it will tell to the thread to do it.
- ///
- internal bool WaitForDialogThreadToTerminate()
- {
- return this.WaitForDialogThreadToTerminate(DefaultMillisecondsToWait);
- }
-
- ///
- /// Waits for the dialog box close thread to terminate. If the thread does not signal back within millisecondsToWait that it is shutting down,
- /// then it will tell to the thread to do it.
- ///
- /// The number milliseconds to wait for until the dialog purger thread is signaled to terminate. This is just for safe precaution that we do not hang.
- /// The result of the dialog boxes closing
- internal bool WaitForDialogThreadToTerminate(int numberOfMillisecondsToWait)
- {
- bool signaled = false;
-
- // We give millisecondsToWait sec to bring up and close the dialog box.
- signaled = this.threadDone.WaitOne(numberOfMillisecondsToWait, false);
-
- // Kill the thread since a timeout occured.
- if (!signaled)
- {
- lock (Mutex)
- {
- // Set the exit thread to true. Next time the thread will kill itselfes if it sees
- this.exitThread = true;
- }
-
- // Wait for the thread to finish. We should never deadlock here.
- this.threadDone.WaitOne();
- }
-
- return this.dialogBoxCloseResult;
- }
-
- ///
- /// This is the thread method.
- ///
- private void HandleDialogBoxes()
- {
- // No synchronization numberOfDialogsToWaitFor since it is readonly
- IntPtr[] hwnds = new IntPtr[this.numberOfDialogsToWaitFor];
- bool[] dialogBoxCloseResults = new bool[this.numberOfDialogsToWaitFor];
-
- try
- {
- // Signal that we started
- lock (Mutex)
- {
- this.threadStarted.Set();
- }
-
- // The loop will be exited either if a message is send by the caller thread or if we found the dialog. If a message box text is specified the loop will not exit until the dialog is found.
- bool stayInLoop = true;
- int dialogBoxesToWaitFor = 1;
-
- while (stayInLoop)
- {
- int hwndIndex = dialogBoxesToWaitFor - 1;
-
- // We need to lock since the caller might set context to null.
- lock (Mutex)
- {
- if (this.exitThread)
- {
- break;
- }
-
- // We protect the shell too from reentrency.
- this.uiShell.GetDialogOwnerHwnd(out hwnds[hwndIndex]);
-
- }
-
- if (hwnds[hwndIndex] != IntPtr.Zero)
- {
- StringBuilder windowClassName = new StringBuilder(256);
- NativeMethods.GetClassName(hwnds[hwndIndex], windowClassName, windowClassName.Capacity);
-
- // The #32770 is the class name of a messagebox dialog.
- if (windowClassName.ToString().Contains("#32770"))
- {
- IntPtr unmanagedMemoryLocation = IntPtr.Zero;
- string dialogBoxText = String.Empty;
- try
- {
- unmanagedMemoryLocation = Marshal.AllocHGlobal(10 * 1024);
- NativeMethods.EnumChildWindows(hwnds[hwndIndex], new NativeMethods.CallBack(FindMessageBoxString), unmanagedMemoryLocation);
- dialogBoxText = Marshal.PtrToStringUni(unmanagedMemoryLocation);
- }
- finally
- {
- if (unmanagedMemoryLocation != IntPtr.Zero)
- {
- Marshal.FreeHGlobal(unmanagedMemoryLocation);
- }
- }
-
- lock (Mutex)
- {
-
- // Since this is running on the main thread be sure that we close the dialog.
- bool dialogCloseResult = false;
- if (this.buttonAction != 0)
- {
- dialogCloseResult = NativeMethods.EndDialog(hwnds[hwndIndex], this.buttonAction);
- }
-
- // Check if we have found the right dialog box.
- if (String.IsNullOrEmpty(this.expectedDialogBoxText) || (!String.IsNullOrEmpty(dialogBoxText) && String.Compare(this.expectedDialogBoxText, dialogBoxText.Trim(), StringComparison.OrdinalIgnoreCase) == 0))
- {
- dialogBoxCloseResults[hwndIndex] = dialogCloseResult;
- if (dialogBoxesToWaitFor++ >= this.numberOfDialogsToWaitFor)
- {
- stayInLoop = false;
- }
- }
- }
- }
- }
- }
- }
- finally
- {
- //Let the main thread run a possible close command.
- System.Threading.Thread.Sleep(2000);
-
- foreach (IntPtr hwnd in hwnds)
- {
- // At this point the dialog should be closed, if not attempt to close it.
- if (hwnd != IntPtr.Zero)
- {
- NativeMethods.SendMessage(hwnd, NativeMethods.WM_CLOSE, 0, new IntPtr(0));
- }
- }
-
- lock (Mutex)
- {
- // Be optimistic.
- this.dialogBoxCloseResult = true;
-
- for (int i = 0; i < dialogBoxCloseResults.Length; i++)
- {
- if (!dialogBoxCloseResults[i])
- {
- this.dialogBoxCloseResult = false;
- break;
- }
- }
-
- this.threadDone.Set();
- }
- }
- }
-
- ///
- /// Finds a messagebox string on a messagebox.
- ///
- /// The windows handle of the dialog
- /// A pointer to the memorylocation the string will be written to
- /// True if found.
- private static bool FindMessageBoxString(IntPtr hwnd, IntPtr unmanagedMemoryLocation)
- {
- StringBuilder sb = new StringBuilder(512);
- NativeMethods.GetClassName(hwnd, sb, sb.Capacity);
-
- if (sb.ToString().ToLower().Contains("static"))
- {
- StringBuilder windowText = new StringBuilder(2048);
- NativeMethods.GetWindowText(hwnd, windowText, windowText.Capacity);
-
- if (windowText.Length > 0)
- {
- IntPtr stringAsPtr = IntPtr.Zero;
- try
- {
- stringAsPtr = Marshal.StringToHGlobalAnsi(windowText.ToString());
- char[] stringAsArray = windowText.ToString().ToCharArray();
-
- // Since unicode characters are copied check if we are out of the allocated length.
- // If not add the end terminating zero.
- if ((2 * stringAsArray.Length) + 1 < 2048)
- {
- Marshal.Copy(stringAsArray, 0, unmanagedMemoryLocation, stringAsArray.Length);
- Marshal.WriteInt32(unmanagedMemoryLocation, 2 * stringAsArray.Length, 0);
- }
- }
- finally
- {
- if (stringAsPtr != IntPtr.Zero)
- {
- Marshal.FreeHGlobal(stringAsPtr);
- }
- }
- return false;
- }
- }
-
- return true;
- }
-
- #endregion
- }
-}
diff --git a/VSPackageInstall/VSPackageInstall_IntegrationTests/IntegrationTest Library/NativeMethods.cs b/VSPackageInstall/VSPackageInstall_IntegrationTests/IntegrationTest Library/NativeMethods.cs
deleted file mode 100644
index 8007567..0000000
--- a/VSPackageInstall/VSPackageInstall_IntegrationTests/IntegrationTest Library/NativeMethods.cs
+++ /dev/null
@@ -1,154 +0,0 @@
-/***************************************************************************
-
-Copyright (c) Microsoft Corporation. All rights reserved.
-This code is licensed under the Visual Studio SDK license terms.
-THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-
-***************************************************************************/
-
-namespace Microsoft.VsSDK.IntegrationTestLibrary
-{
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Runtime.InteropServices;
- using System.Threading;
- using Microsoft.VisualStudio.Shell.Interop;
-
- ///
- /// Defines pinvoked utility methods and internal VS Constants
- ///
- internal static class NativeMethods
- {
- internal delegate bool CallBack(IntPtr hwnd, IntPtr lParam);
-
- // Declare two overloaded SendMessage functions
- [DllImport("user32.dll")]
- internal static extern UInt32 SendMessage(IntPtr hWnd, UInt32 Msg,
- UInt32 wParam, IntPtr lParam);
-
- [DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto)]
- internal static extern bool PeekMessage([In, Out] ref Microsoft.VisualStudio.OLE.Interop.MSG msg, HandleRef hwnd, int msgMin, int msgMax, int remove);
-
- [DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto)]
- internal static extern bool TranslateMessage([In, Out] ref Microsoft.VisualStudio.OLE.Interop.MSG msg);
-
- [DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto)]
- internal static extern int DispatchMessage([In] ref Microsoft.VisualStudio.OLE.Interop.MSG msg);
-
- [DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto)]
- internal static extern bool AttachThreadInput(uint idAttach, uint idAttachTo, bool attach);
-
- [DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto)]
- internal static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);
-
- [DllImport("kernel32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto)]
- internal static extern uint GetCurrentThreadId();
-
- [DllImport("user32")]
- internal static extern int EnumChildWindows(IntPtr hwnd, CallBack x, IntPtr y);
-
- [DllImport("user32")]
- internal static extern bool IsWindowVisible(IntPtr hDlg);
-
- [DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto)]
- internal static extern IntPtr SetFocus(IntPtr hWnd);
-
- [DllImport("user32")]
- internal static extern int GetClassName(IntPtr hWnd,
- StringBuilder className,
- int stringLength);
- [DllImport("user32")]
- internal static extern int GetWindowText(IntPtr hWnd, StringBuilder className, int stringLength);
-
-
- [DllImport("user32")]
- internal static extern bool EndDialog(IntPtr hDlg, int result);
-
- [DllImport("Kernel32")]
- internal static extern long GetLastError();
-
- internal const int QS_KEY = 0x0001,
- QS_MOUSEMOVE = 0x0002,
- QS_MOUSEBUTTON = 0x0004,
- QS_POSTMESSAGE = 0x0008,
- QS_TIMER = 0x0010,
- QS_PAINT = 0x0020,
- QS_SENDMESSAGE = 0x0040,
- QS_HOTKEY = 0x0080,
- QS_ALLPOSTMESSAGE = 0x0100,
- QS_MOUSE = QS_MOUSEMOVE | QS_MOUSEBUTTON,
- QS_INPUT = QS_MOUSE | QS_KEY,
- QS_ALLEVENTS = QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY,
- QS_ALLINPUT = QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY | QS_SENDMESSAGE;
-
- internal const int Facility_Win32 = 7;
-
- internal const int WM_CLOSE = 0x0010;
-
- internal const int
- S_FALSE = 0x00000001,
- S_OK = 0x00000000,
-
- IDOK = 1,
- IDCANCEL = 2,
- IDABORT = 3,
- IDRETRY = 4,
- IDIGNORE = 5,
- IDYES = 6,
- IDNO = 7,
- IDCLOSE = 8,
- IDHELP = 9,
- IDTRYAGAIN = 10,
- IDCONTINUE = 11;
-
- internal static long HResultFromWin32(long error)
- {
- if (error <= 0)
- {
- return error;
- }
-
- return ((error & 0x0000FFFF) | (Facility_Win32 << 16) | 0x80000000);
- }
-
- ///
- /// Please use this "approved" method to compare file names.
- ///
- public static bool IsSamePath(string file1, string file2)
- {
- if (file1 == null || file1.Length == 0)
- {
- return (file2 == null || file2.Length == 0);
- }
-
- Uri uri1 = null;
- Uri uri2 = null;
-
- try
- {
- if (!Uri.TryCreate(file1, UriKind.Absolute, out uri1) || !Uri.TryCreate(file2, UriKind.Absolute, out uri2))
- {
- return false;
- }
-
- if (uri1 != null && uri1.IsFile && uri2 != null && uri2.IsFile)
- {
- return 0 == String.Compare(uri1.LocalPath, uri2.LocalPath, StringComparison.OrdinalIgnoreCase);
- }
-
- return file1 == file2;
- }
- catch (UriFormatException e)
- {
- System.Diagnostics.Trace.WriteLine("Exception " + e.Message);
- }
-
- return false;
- }
-
- }
-}
diff --git a/VSPackageInstall/VSPackageInstall_IntegrationTests/IntegrationTest Library/Utils.cs b/VSPackageInstall/VSPackageInstall_IntegrationTests/IntegrationTest Library/Utils.cs
deleted file mode 100644
index 1fa9deb..0000000
--- a/VSPackageInstall/VSPackageInstall_IntegrationTests/IntegrationTest Library/Utils.cs
+++ /dev/null
@@ -1,401 +0,0 @@
-using System;
-using System.IO;
-using System.Text;
-using System.Reflection;
-using System.Diagnostics;
-using System.Collections;
-using System.Collections.Generic;
-using System.ComponentModel.Design;
-using System.Runtime.InteropServices;
-using Microsoft.VisualStudio.Shell.Interop;
-using Microsoft.VisualStudio.Shell;
-using EnvDTE;
-using EnvDTE80;
-using Microsoft.Win32;
-using IOleServiceProvider = Microsoft.VisualStudio.OLE.Interop.IServiceProvider;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-using Microsoft.VSSDK.Tools.VsIdeTesting;
-using Microsoft.VisualStudio;
-
-namespace Microsoft.VsSDK.IntegrationTestLibrary
-{
- ///
- ///
- public class TestUtils
- {
-
- #region Methods: Handling embedded resources
- ///
- /// Gets the embedded file identified by the resource name, and converts the
- /// file into a string.
- ///
- /// In VS, is DefaultNamespace.FileName?
- ///
- public static string GetEmbeddedStringResource(Assembly assembly, string resourceName)
- {
- string result = null;
-
- // Use the .NET procedure for loading a file embedded in the assembly
- Stream stream = assembly.GetManifestResourceStream(resourceName);
- if (stream != null)
- {
- // Convert bytes to string
- byte[] fileContentsAsBytes = new byte[stream.Length];
- stream.Read(fileContentsAsBytes, 0, (int)stream.Length);
- result = Encoding.Default.GetString(fileContentsAsBytes);
- }
- else
- {
- // Embedded resource not found - list available resources
- Debug.WriteLine("Unable to find the embedded resource file '" + resourceName + "'.");
- Debug.WriteLine(" Available resources:");
- foreach (string aResourceName in assembly.GetManifestResourceNames())
- {
- Debug.WriteLine(" " + aResourceName);
- }
- }
-
- return result;
- }
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- public static void WriteEmbeddedResourceToFile(Assembly assembly, string embeddedResourceName, string fileName)
- {
- // Get file contents
- string fileContents = GetEmbeddedStringResource(assembly, embeddedResourceName);
- if (fileContents == null)
- throw new ApplicationException("Failed to get embedded resource '" + embeddedResourceName + "' from assembly '" + assembly.FullName);
-
- // Write to file
- StreamWriter sw = new StreamWriter(fileName);
- sw.Write(fileContents);
- sw.Close();
- }
-
- ///
- /// Writes an embedded resource to a file.
- ///
- /// The name of the assembly that the embedded resource is defined.
- /// The name of the embedded resource.
- /// The file to write the embedded resource's content.
- public static void WriteEmbeddedResourceToBinaryFile(Assembly assembly, string embeddedResourceName, string fileName)
- {
- // Get file contents
- Stream stream = assembly.GetManifestResourceStream(embeddedResourceName);
- if (stream == null)
- throw new InvalidOperationException("Failed to get embedded resource '" + embeddedResourceName + "' from assembly '" + assembly.FullName);
-
- // Write to file
- BinaryWriter sw = null;
- FileStream fs = null;
- try
- {
- byte[] fileContentsAsBytes = new byte[stream.Length];
- stream.Read(fileContentsAsBytes, 0, (int)stream.Length);
-
- FileMode mode = FileMode.CreateNew;
- if (File.Exists(fileName))
- {
- mode = FileMode.Truncate;
- }
-
- fs = new FileStream(fileName, mode);
-
- sw = new BinaryWriter(fs);
- sw.Write(fileContentsAsBytes);
- }
- finally
- {
- if (fs != null)
- {
- fs.Close();
- }
- if (sw != null)
- {
- sw.Close();
- }
- }
- }
-
- #endregion
-
- #region Methods: Handling temporary files and directories
- ///
- /// Returns the first available file name on the form
- /// [baseFileName]i.[extension]
- /// where [i] starts at 1 and increases until there is an available file name
- /// in the given directory. Also creates an empty file with that name to mark
- /// that file as occupied.
- ///
- /// Directory that the file should live in.
- ///
- /// may be null, in which case the .[extension] part
- /// is not added.
- /// Full file name.
- public static string GetNewFileName(string directory, string baseFileName, string extension)
- {
- // Get the new file name
- string fileName = GetNewFileOrDirectoryNameWithoutCreatingAnything(directory, baseFileName, extension);
-
- // Create an empty file to mark it as taken
- StreamWriter sw = new StreamWriter(fileName);
-
- sw.Write("");
- sw.Close();
- return fileName;
- }
- ///
- /// Returns the first available directory name on the form
- /// [baseDirectoryName]i
- /// where [i] starts at 1 and increases until there is an available directory name
- /// in the given directory. Also creates the directory to mark it as occupied.
- ///
- /// Directory that the file should live in.
- ///
- /// Full directory name.
- public static string GetNewDirectoryName(string directory, string baseDirectoryName)
- {
- // Get the new file name
- string directoryName = GetNewFileOrDirectoryNameWithoutCreatingAnything(directory, baseDirectoryName, null);
-
- // Create an empty directory to make it as occupied
- Directory.CreateDirectory(directoryName);
-
- return directoryName;
- }
-
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- private static string GetNewFileOrDirectoryNameWithoutCreatingAnything(string directory, string baseFileName, string extension)
- {
- // - get a file name that we can use
- string fileName;
- int i = 1;
-
- string fullFileName = null;
- while (true)
- {
- // construct next file name
- fileName = baseFileName + i;
- if (extension != null)
- fileName += '.' + extension;
-
- // check if that file exists in the directory
- fullFileName = Path.Combine(directory, fileName);
-
- if (!File.Exists(fullFileName) && !Directory.Exists(fullFileName))
- break;
- else
- i++;
- }
-
- return fullFileName;
- }
- #endregion
-
- #region Methods: Handling solutions
- ///
- /// Closes the currently open solution (if any), and creates a new solution with the given name.
- ///
- /// Name of new solution.
- public void CreateEmptySolution(string directory, string solutionName)
- {
- CloseCurrentSolution(__VSSLNSAVEOPTIONS.SLNSAVEOPT_NoSave);
-
- string solutionDirectory = GetNewDirectoryName(directory, solutionName);
-
- // Create and force save solution
- IVsSolution solutionService = (IVsSolution)VsIdeTestHostContext.ServiceProvider.GetService(typeof(IVsSolution));
- solutionService.CreateSolution(solutionDirectory, solutionName, (uint)__VSCREATESOLUTIONFLAGS.CSF_SILENT);
- solutionService.SaveSolutionElement((uint)__VSSLNSAVEOPTIONS.SLNSAVEOPT_ForceSave, null, 0);
- DTE dte = VsIdeTestHostContext.Dte;
- Assert.AreEqual(solutionName + ".sln", Path.GetFileName(dte.Solution.FileName), "Newly created solution has wrong Filename");
- }
-
- public void CloseCurrentSolution(__VSSLNSAVEOPTIONS saveoptions)
- {
- // Get solution service
- IVsSolution solutionService = (IVsSolution)VsIdeTestHostContext.ServiceProvider.GetService(typeof(IVsSolution));
-
- // Close already open solution
- solutionService.CloseSolutionElement((uint)saveoptions, null, 0);
- }
-
- public void ForceSaveSolution()
- {
- // Get solution service
- IVsSolution solutionService = (IVsSolution)VsIdeTestHostContext.ServiceProvider.GetService(typeof(IVsSolution));
-
- // Force-save the solution
- solutionService.SaveSolutionElement((uint)__VSSLNSAVEOPTIONS.SLNSAVEOPT_ForceSave, null, 0);
- }
-
- ///
- /// Get current number of open project in solution
- ///
- ///
- public int ProjectCount()
- {
- // Get solution service
- IVsSolution solutionService = (IVsSolution)VsIdeTestHostContext.ServiceProvider.GetService(typeof(IVsSolution));
- object projectCount;
- solutionService.GetProperty((int)__VSPROPID.VSPROPID_ProjectCount, out projectCount);
- return (int)projectCount;
- }
- #endregion
-
- #region Methods: Handling projects
- ///
- /// Creates a project.
- ///
- /// Name of new project.
- /// Name of project template to use
- /// language
- /// New project.
- public void CreateProjectFromTemplate(string projectName, string templateName, string language, bool exclusive)
- {
- DTE dte = (DTE)VsIdeTestHostContext.ServiceProvider.GetService(typeof(DTE));
-
- Solution2 sol = dte.Solution as Solution2;
- string projectTemplate = sol.GetProjectTemplate(templateName, language);
-
- // - project name and directory
- string solutionDirectory = Directory.GetParent(dte.Solution.FullName).FullName;
- string projectDirectory = GetNewDirectoryName(solutionDirectory, projectName);
-
- dte.Solution.AddFromTemplate(projectTemplate, projectDirectory, projectName, false);
- }
- #endregion
-
- #region Methods: Handling project items
- ///
- /// Create a new item in the project
- ///
- /// the parent collection for the new item
- ///
- ///
- ///
- ///
- public ProjectItem AddNewItemFromVsTemplate(ProjectItems parent, string templateName, string language, string name)
- {
- if (parent == null)
- throw new ArgumentException("project");
- if (name == null)
- throw new ArgumentException("name");
-
- DTE dte = (DTE)VsIdeTestHostContext.ServiceProvider.GetService(typeof(DTE));
-
- Solution2 sol = dte.Solution as Solution2;
-
- string filename = sol.GetProjectItemTemplate(templateName, language);
-
- parent.AddFromTemplate(filename, name);
-
- return parent.Item(name);
- }
-
- ///
- /// Save an open document.
- ///
- /// for filebased documents this is the full path to the document
- public void SaveDocument(string documentMoniker)
- {
- // Get document cookie and hierarchy for the file
- IVsRunningDocumentTable runningDocumentTableService = (IVsRunningDocumentTable)VsIdeTestHostContext.ServiceProvider.GetService(typeof(IVsRunningDocumentTable));
- uint docCookie;
- IntPtr docData;
- IVsHierarchy hierarchy;
- uint itemId;
- runningDocumentTableService.FindAndLockDocument(
- (uint)Microsoft.VisualStudio.Shell.Interop._VSRDTFLAGS.RDT_NoLock,
- documentMoniker,
- out hierarchy,
- out itemId,
- out docData,
- out docCookie);
-
- // Save the document
- IVsSolution solutionService = (IVsSolution)VsIdeTestHostContext.ServiceProvider.GetService(typeof(IVsSolution));
- solutionService.SaveSolutionElement((uint)__VSSLNSAVEOPTIONS.SLNSAVEOPT_ForceSave, hierarchy, docCookie);
- }
-
- public void CloseInEditorWithoutSaving(string fullFileName)
- {
- // Get the RDT service
- IVsRunningDocumentTable runningDocumentTableService = (IVsRunningDocumentTable)VsIdeTestHostContext.ServiceProvider.GetService(typeof(IVsRunningDocumentTable));
- Assert.IsNotNull(runningDocumentTableService, "Failed to get the Running Document Table Service");
-
- // Get our document cookie and hierarchy for the file
- uint docCookie;
- IntPtr docData;
- IVsHierarchy hierarchy;
- uint itemId;
- runningDocumentTableService.FindAndLockDocument(
- (uint)Microsoft.VisualStudio.Shell.Interop._VSRDTFLAGS.RDT_NoLock,
- fullFileName,
- out hierarchy,
- out itemId,
- out docData,
- out docCookie);
-
- // Get the SolutionService
- IVsSolution solutionService = VsIdeTestHostContext.ServiceProvider.GetService(typeof(IVsSolution)) as IVsSolution;
- Assert.IsNotNull(solutionService, "Failed to get IVsSolution service");
-
- // Close the document
- solutionService.CloseSolutionElement(
- (uint)__VSSLNSAVEOPTIONS.SLNSAVEOPT_NoSave,
- hierarchy,
- docCookie);
- }
- #endregion
-
- #region Methods: Handling Toolwindows
- public bool CanFindToolwindow(Guid persistenceGuid)
- {
- IVsUIShell uiShellService = VsIdeTestHostContext.ServiceProvider.GetService(typeof(SVsUIShell)) as IVsUIShell;
- Assert.IsNotNull(uiShellService);
- IVsWindowFrame windowFrame;
- int hr = uiShellService.FindToolWindow((uint)__VSFINDTOOLWIN.FTW_fFindFirst, ref persistenceGuid, out windowFrame);
- Assert.IsTrue(hr == VSConstants.S_OK);
-
- return (windowFrame != null);
- }
- #endregion
-
- #region Methods: Loading packages
- public IVsPackage LoadPackage(Guid packageGuid)
- {
- IVsShell shellService = (IVsShell)VsIdeTestHostContext.ServiceProvider.GetService(typeof(SVsShell));
- IVsPackage package;
- shellService.LoadPackage(ref packageGuid, out package);
- Assert.IsNotNull(package, "Failed to load package");
- return package;
- }
- #endregion
-
- ///
- /// Executes a Command (menu item) in the given context
- ///
- public void ExecuteCommand(CommandID cmd)
- {
- object Customin = null;
- object Customout = null;
- string guidString = cmd.Guid.ToString("B").ToUpper();
- int cmdId = cmd.ID;
- DTE dte = VsIdeTestHostContext.Dte;
- dte.Commands.Raise(guidString, cmdId, ref Customin, ref Customout);
- }
-
- }
-}
diff --git a/VSPackageInstall/VSPackageInstall_IntegrationTests/Key.snk b/VSPackageInstall/VSPackageInstall_IntegrationTests/Key.snk
deleted file mode 100644
index 6a24fe5..0000000
Binary files a/VSPackageInstall/VSPackageInstall_IntegrationTests/Key.snk and /dev/null differ
diff --git a/VSPackageInstall/VSPackageInstall_IntegrationTests/MenuItemTest.cs b/VSPackageInstall/VSPackageInstall_IntegrationTests/MenuItemTest.cs
deleted file mode 100644
index 8d22566..0000000
--- a/VSPackageInstall/VSPackageInstall_IntegrationTests/MenuItemTest.cs
+++ /dev/null
@@ -1,66 +0,0 @@
-using System;
-using System.Globalization;
-using System.ComponentModel.Design;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-using Microsoft.VisualStudio.OLE.Interop;
-using Microsoft.VisualStudio.Shell.Interop;
-using Microsoft.VisualStudio.Shell;
-using Microsoft.VsSDK.IntegrationTestLibrary;
-using Microsoft.VSSDK.Tools.VsIdeTesting;
-
-namespace VSPackageInstall_IntegrationTests
-{
- [TestClass()]
- public class MenuItemTest
- {
- private delegate void ThreadInvoker();
-
- private TestContext testContextInstance;
-
- ///
- ///Gets or sets the test context which provides
- ///information about and functionality for the current test run.
- ///
- public TestContext TestContext
- {
- get
- {
- return testContextInstance;
- }
- set
- {
- testContextInstance = value;
- }
- }
-
- ///
- ///A test for lauching the command and closing the associated dialogbox
- ///
- [TestMethod()]
- [HostType("VS IDE")]
- public void LaunchCommand()
- {
- UIThreadInvoker.Invoke((ThreadInvoker)delegate()
- {
- CommandID menuItemCmd = new CommandID(VitaliiGanzha.VSPackageInstall.GuidList.guidVSPackageInstallCmdSet, (int)VitaliiGanzha.VSPackageInstall.PkgCmdIDList.cmdidVsDing);
-
- // Create the DialogBoxListener Thread.
- string expectedDialogBoxText = string.Format(CultureInfo.CurrentCulture, "{0}\n\nInside {1}.MenuItemCallback()", "VSPackageInstall", "VitaliiGanzha.VSPackageInstall.VSPackageInstallPackage");
- DialogBoxPurger purger = new DialogBoxPurger(NativeMethods.IDOK, expectedDialogBoxText);
-
- try
- {
- purger.Start();
-
- TestUtils testUtils = new TestUtils();
- testUtils.ExecuteCommand(menuItemCmd);
- }
- finally
- {
- Assert.IsTrue(purger.WaitForDialogThreadToTerminate(), "The dialog box has not shown");
- }
- });
- }
-
- }
-}
diff --git a/VSPackageInstall/VSPackageInstall_IntegrationTests/PackageTest.cs b/VSPackageInstall/VSPackageInstall_IntegrationTests/PackageTest.cs
deleted file mode 100644
index 62e9689..0000000
--- a/VSPackageInstall/VSPackageInstall_IntegrationTests/PackageTest.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-using System;
-using System.Text;
-using System.Collections.Generic;
-using System.Linq;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-using Microsoft.VSSDK.Tools.VsIdeTesting;
-using Microsoft.VisualStudio.Shell.Interop;
-using Microsoft.VisualStudio.Shell;
-using EnvDTE;
-
-namespace VSPackageInstall_IntegrationTests
-{
- ///
- /// Integration test for package validation
- ///
- [TestClass]
- public class PackageTest
- {
- private delegate void ThreadInvoker();
-
- private TestContext testContextInstance;
-
- ///
- ///Gets or sets the test context which provides
- ///information about and functionality for the current test run.
- ///
- public TestContext TestContext
- {
- get
- {
- return testContextInstance;
- }
- set
- {
- testContextInstance = value;
- }
- }
-
- [TestMethod]
- [HostType("VS IDE")]
- public void PackageLoadTest()
- {
- UIThreadInvoker.Invoke((ThreadInvoker)delegate()
- {
-
- //Get the Shell Service
- IVsShell shellService = VsIdeTestHostContext.ServiceProvider.GetService(typeof(SVsShell)) as IVsShell;
- Assert.IsNotNull(shellService);
-
- //Validate package load
- IVsPackage package;
- Guid packageGuid = new Guid(VitaliiGanzha.VSPackageInstall.GuidList.guidVSPackageInstallPkgString);
- Assert.IsTrue(0 == shellService.LoadPackage(ref packageGuid, out package));
- Assert.IsNotNull(package, "Package failed to load");
-
- });
- }
- }
-}
diff --git a/VSPackageInstall/VSPackageInstall_IntegrationTests/SignOff-Tests/CPPProjectTests.cs b/VSPackageInstall/VSPackageInstall_IntegrationTests/SignOff-Tests/CPPProjectTests.cs
deleted file mode 100644
index d146f65..0000000
--- a/VSPackageInstall/VSPackageInstall_IntegrationTests/SignOff-Tests/CPPProjectTests.cs
+++ /dev/null
@@ -1,109 +0,0 @@
-using System;
-using System.Text;
-using System.Collections.Generic;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-using Microsoft.VsSDK.IntegrationTestLibrary;
-using Microsoft.VSSDK.Tools.VsIdeTesting;
-using EnvDTE;
-using System.IO;
-
-namespace VSPackageInstall_IntegrationTests.IntegrationTests
-{
- [TestClass]
- public class CPPProjectTests
- {
- #region fields
- private delegate void ThreadInvoker();
- private TestContext _testContext;
- #endregion
-
- #region properties
- ///
- ///Gets or sets the test context which provides
- ///information about and functionality for the current test run.
- ///
- public TestContext TestContext
- {
- get { return _testContext; }
- set { _testContext = value; }
- }
- #endregion
-
- #region ctors
- public CPPProjectTests()
- {
- }
- #endregion
-
- #region Additional test attributes
- //
- // You can use the following additional attributes as you write your tests:
- //
- // Use ClassInitialize to run code before running the first test in the class
- // [ClassInitialize()]
- // public static void MyClassInitialize(TestContext testContext) { }
- //
- // Use ClassCleanup to run code after all tests in a class have run
- // [ClassCleanup()]
- // public static void MyClassCleanup() { }
- //
- // Use TestInitialize to run code before running each test
- // [TestInitialize()]
- // public void MyTestInitialize() { }
- //
- // Use TestCleanup to run code after each test has run
- // [TestCleanup()]
- // public void MyTestCleanup() { }
- //
- #endregion
-
- [HostType("VS IDE")]
- [TestMethod]
- public void CPPWinformsApplication()
- {
- UIThreadInvoker.Invoke((ThreadInvoker)delegate()
- {
- //Solution and project creation parameters
- string solutionName = "CPPWinApp";
- string projectName = "CPPWinApp";
-
- //Template parameters
- string projectType = "{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}";
- string projectTemplateName = Path.Combine("vcNet", "mc++appwiz.vsz");
-
- string itemTemplateName = "newc++file.cpp";
- string newFileName = "Test.cpp";
-
- DTE dte = (DTE)VsIdeTestHostContext.ServiceProvider.GetService(typeof(DTE));
-
- TestUtils testUtils = new TestUtils();
-
- testUtils.CreateEmptySolution(TestContext.TestDir, solutionName);
- Assert.AreEqual(0, testUtils.ProjectCount());
-
- //Add new CPP Windows application project to existing solution
- string solutionDirectory = Directory.GetParent(dte.Solution.FullName).FullName;
- string projectDirectory = TestUtils.GetNewDirectoryName(solutionDirectory, projectName);
- string projectTemplatePath = Path.Combine(dte.Solution.get_TemplatePath(projectType), projectTemplateName);
- Assert.IsTrue(File.Exists(projectTemplatePath), string.Format("Could not find template file: {0}", projectTemplatePath));
- dte.Solution.AddFromTemplate(projectTemplatePath, projectDirectory, projectName, false);
-
- //Verify that the new project has been added to the solution
- Assert.AreEqual(1, testUtils.ProjectCount());
-
- //Get the project
- Project project = dte.Solution.Item(1);
- Assert.IsNotNull(project);
- Assert.IsTrue(string.Compare(project.Name, projectName, StringComparison.InvariantCultureIgnoreCase) == 0);
-
- //Verify Adding new code file to project
- string newItemTemplatePath = Path.Combine(dte.Solution.ProjectItemsTemplatePath(projectType), itemTemplateName);
- Assert.IsTrue(File.Exists(newItemTemplatePath));
- ProjectItem item = project.ProjectItems.AddFromTemplate(newItemTemplatePath, newFileName);
- Assert.IsNotNull(item);
-
- });
- }
-
- }
-}
diff --git a/VSPackageInstall/VSPackageInstall_IntegrationTests/SignOff-Tests/CSharpProjectTests.cs b/VSPackageInstall/VSPackageInstall_IntegrationTests/SignOff-Tests/CSharpProjectTests.cs
deleted file mode 100644
index 0d34ad0..0000000
--- a/VSPackageInstall/VSPackageInstall_IntegrationTests/SignOff-Tests/CSharpProjectTests.cs
+++ /dev/null
@@ -1,83 +0,0 @@
-using System;
-using System.Text;
-using System.Collections.Generic;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-using Microsoft.VsSDK.IntegrationTestLibrary;
-using Microsoft.VSSDK.Tools.VsIdeTesting;
-
-namespace VSPackageInstall_IntegrationTests.IntegrationTests
-{
- [TestClass]
- public class CSharpProjectTests
- {
- #region fields
- private delegate void ThreadInvoker();
- private TestContext _testContext;
- #endregion
-
- #region properties
- ///
- ///Gets or sets the test context which provides
- ///information about and functionality for the current test run.
- ///
- public TestContext TestContext
- {
- get { return _testContext; }
- set { _testContext = value; }
- }
- #endregion
-
- #region ctors
- public CSharpProjectTests()
- {
- }
- #endregion
-
- #region Additional test attributes
- //
- // You can use the following additional attributes as you write your tests:
- //
- // Use ClassInitialize to run code before running the first test in the class
- // [ClassInitialize()]
- // public static void MyClassInitialize(TestContext testContext) { }
- //
- // Use ClassCleanup to run code after all tests in a class have run
- // [ClassCleanup()]
- // public static void MyClassCleanup() { }
- //
- // Use TestInitialize to run code before running each test
- // [TestInitialize()]
- // public void MyTestInitialize() { }
- //
- // Use TestCleanup to run code after each test has run
- // [TestCleanup()]
- // public void MyTestCleanup() { }
- //
- #endregion
-
- [TestMethod]
- [HostType("VS IDE")]
- public void WinformsApplication()
- {
- UIThreadInvoker.Invoke((ThreadInvoker)delegate()
- {
- TestUtils testUtils = new TestUtils();
-
- testUtils.CreateEmptySolution(TestContext.TestDir, "CSWinApp");
- Assert.AreEqual(0, testUtils.ProjectCount());
-
- //Create Winforms application project
- //TestUtils.CreateProjectFromTemplate("MyWindowsApp", "Windows Application", "CSharp", false);
- //Assert.AreEqual(1, TestUtils.ProjectCount());
-
- //TODO Verify that we can debug launch the application
-
- //TODO Set Break point and verify that will hit
-
- //TODO Verify Adding new project item to project
-
- });
- }
-
- }
-}
diff --git a/VSPackageInstall/VSPackageInstall_IntegrationTests/SignOff-Tests/SolutionTests.cs b/VSPackageInstall/VSPackageInstall_IntegrationTests/SignOff-Tests/SolutionTests.cs
deleted file mode 100644
index 00e4e51..0000000
--- a/VSPackageInstall/VSPackageInstall_IntegrationTests/SignOff-Tests/SolutionTests.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-using System;
-using System.Text;
-using System.Collections.Generic;
-using Microsoft.VisualStudio.Shell.Interop;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-using Microsoft.VSSDK.Tools.VsIdeTesting;
-using EnvDTE;
-using System.IO;
-using Microsoft.VsSDK.IntegrationTestLibrary;
-
-
-namespace VSPackageInstall_IntegrationTests.IntegrationTests
-{
- [TestClass]
- public class SolutionTests
- {
- #region fields
- private delegate void ThreadInvoker();
- private TestContext _testContext;
- #endregion
-
- #region properties
- ///
- ///Gets or sets the test context which provides
- ///information about and functionality for the current test run.
- ///
- public TestContext TestContext
- {
- get { return _testContext; }
- set { _testContext = value; }
- }
- #endregion
-
-
- #region ctors
- public SolutionTests()
- {
- }
-
- #endregion
-
- [TestMethod]
- [HostType("VS IDE")]
- public void CreateEmptySolution()
- {
- UIThreadInvoker.Invoke((ThreadInvoker)delegate()
- {
- TestUtils testUtils = new TestUtils();
- testUtils.CloseCurrentSolution(__VSSLNSAVEOPTIONS.SLNSAVEOPT_NoSave);
- testUtils.CreateEmptySolution(TestContext.TestDir, "EmptySolution");
- });
- }
-
- }
-}
diff --git a/VSPackageInstall/VSPackageInstall_IntegrationTests/SignOff-Tests/VBProjectTests.cs b/VSPackageInstall/VSPackageInstall_IntegrationTests/SignOff-Tests/VBProjectTests.cs
deleted file mode 100644
index d9253df..0000000
--- a/VSPackageInstall/VSPackageInstall_IntegrationTests/SignOff-Tests/VBProjectTests.cs
+++ /dev/null
@@ -1,101 +0,0 @@
-using System;
-using System.Text;
-using System.Collections.Generic;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-using Microsoft.VsSDK.IntegrationTestLibrary;
-using Microsoft.VSSDK.Tools.VsIdeTesting;
-using EnvDTE;
-
-namespace VSPackageInstall_IntegrationTests.IntegrationTests
-{
- [TestClass]
- public class VisualBasicProjectTests
- {
- #region fields
- private delegate void ThreadInvoker();
- private TestContext _testContext;
- #endregion
-
- #region properties
- ///
- ///Gets or sets the test context which provides
- ///information about and functionality for the current test run.
- ///
- public TestContext TestContext
- {
- get { return _testContext; }
- set { _testContext = value; }
- }
- #endregion
-
- #region ctors
- public VisualBasicProjectTests()
- {
- }
- #endregion
-
- #region Additional test attributes
- //
- // You can use the following additional attributes as you write your tests:
- //
- // Use ClassInitialize to run code before running the first test in the class
- // [ClassInitialize()]
- // public static void MyClassInitialize(TestContext testContext) { }
- //
- // Use ClassCleanup to run code after all tests in a class have run
- // [ClassCleanup()]
- // public static void MyClassCleanup() { }
- //
- // Use TestInitialize to run code before running each test
- // [TestInitialize()]
- // public void MyTestInitialize() { }
- //
- // Use TestCleanup to run code after each test has run
- // [TestCleanup()]
- // public void MyTestCleanup() { }
- //
- #endregion
-
- [HostType("VS IDE")]
- [TestMethod]
- public void VBWinformsApplication()
- {
- UIThreadInvoker.Invoke((ThreadInvoker)delegate()
- {
- //Solution and project creation parameters
- string solutionName = "VBWinApp";
- string projectName = "VBWinApp";
-
- //Template parameters
- string language = "VisualBasic";
- string projectTemplateName = "WindowsApplication.Zip";
- string itemTemplateName = "CodeFile.zip";
- string newFileName = "Test.vb";
-
- DTE dte = (DTE)VsIdeTestHostContext.ServiceProvider.GetService(typeof(DTE));
-
- TestUtils testUtils = new TestUtils();
-
- testUtils.CreateEmptySolution(TestContext.TestDir, solutionName);
- Assert.AreEqual(0, testUtils.ProjectCount());
-
- //Add new Windows application project to existing solution
- testUtils.CreateProjectFromTemplate(projectName, projectTemplateName, language, false);
-
- //Verify that the new project has been added to the solution
- Assert.AreEqual(1, testUtils.ProjectCount());
-
- //Get the project
- Project project = dte.Solution.Item(1);
- Assert.IsNotNull(project);
- Assert.IsTrue(string.Compare(project.Name, projectName, StringComparison.InvariantCultureIgnoreCase) == 0);
-
- //Verify Adding new code file to project
- ProjectItem newCodeFileItem = testUtils.AddNewItemFromVsTemplate(project.ProjectItems, itemTemplateName, language, newFileName);
- Assert.IsNotNull(newCodeFileItem, "Could not create new project item");
-
- });
- }
-
- }
-}
diff --git a/VSPackageInstall/VSPackageInstall_IntegrationTests/ToolWindowTest.cs b/VSPackageInstall/VSPackageInstall_IntegrationTests/ToolWindowTest.cs
deleted file mode 100644
index ef5e460..0000000
--- a/VSPackageInstall/VSPackageInstall_IntegrationTests/ToolWindowTest.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-using System;
-using System.ComponentModel.Design;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-using Microsoft.VisualStudio.OLE.Interop;
-using Microsoft.VisualStudio.Shell.Interop;
-using Microsoft.VisualStudio.Shell;
-using Microsoft.VsSDK.IntegrationTestLibrary;
-using Microsoft.VSSDK.Tools.VsIdeTesting;
-
-namespace VSPackageInstall_IntegrationTests
-{
-
- [TestClass()]
- public class ToolWindowTest
- {
- private delegate void ThreadInvoker();
-
- private TestContext testContextInstance;
-
- ///
- ///Gets or sets the test context which provides
- ///information about and functionality for the current test run.
- ///
- public TestContext TestContext
- {
- get
- {
- return testContextInstance;
- }
- set
- {
- testContextInstance = value;
- }
- }
-
- ///
- ///A test for showing the toolwindow
- ///
- [TestMethod()]
- [HostType("VS IDE")]
- public void ShowToolWindow()
- {
- UIThreadInvoker.Invoke((ThreadInvoker)delegate()
- {
- CommandID toolWindowCmd = new CommandID(VitaliiGanzha.VSPackageInstall.GuidList.guidVSPackageInstallCmdSet, (int)VitaliiGanzha.VSPackageInstall.PkgCmdIDList.cmdidVsDingWnd);
-
- TestUtils testUtils = new TestUtils();
- testUtils.ExecuteCommand(toolWindowCmd);
-
- Assert.IsTrue(testUtils.CanFindToolwindow(new Guid(VitaliiGanzha.VSPackageInstall.GuidList.guidToolWindowPersistanceString)));
-
- });
- }
-
- }
-}
diff --git a/VSPackageInstall/VSPackageInstall_IntegrationTests/VSPackageInstall_IntegrationTests.csproj b/VSPackageInstall/VSPackageInstall_IntegrationTests/VSPackageInstall_IntegrationTests.csproj
deleted file mode 100644
index e6bf3bb..0000000
--- a/VSPackageInstall/VSPackageInstall_IntegrationTests/VSPackageInstall_IntegrationTests.csproj
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
-
- Debug
- AnyCPU
- 2.0
- {77A542CC-52C0-4387-B57B-63AF5F597EA1}
- Library
- Properties
- VSPackageInstall_IntegrationTests
- VSPackageInstall_IntegrationTests
- v4.5
- 512
- {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
-
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
- Key.snk
-
-
- true
-
-
-
-
-
-
-
-
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {20191D13-7CC1-4F9B-9CB8-42F22ACE4CA6}
- VSPackageInstall
-
-
-
-
-
\ No newline at end of file
diff --git a/VSPackageInstall/VSPackageInstall_UnitTests/Key.snk b/VSPackageInstall/VSPackageInstall_UnitTests/Key.snk
deleted file mode 100644
index 6a24fe5..0000000
Binary files a/VSPackageInstall/VSPackageInstall_UnitTests/Key.snk and /dev/null differ
diff --git a/VSPackageInstall/VSPackageInstall_UnitTests/MenuItemTests/MenuItemCallback.cs b/VSPackageInstall/VSPackageInstall_UnitTests/MenuItemTests/MenuItemCallback.cs
deleted file mode 100644
index b5aac3f..0000000
--- a/VSPackageInstall/VSPackageInstall_UnitTests/MenuItemTests/MenuItemCallback.cs
+++ /dev/null
@@ -1,80 +0,0 @@
-/***************************************************************************
-
-Copyright (c) Microsoft Corporation. All rights reserved.
-This code is licensed under the Visual Studio SDK license terms.
-THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-
-***************************************************************************/
-
-using System;
-using System.Collections;
-using System.Text;
-using System.Reflection;
-using System.ComponentModel.Design;
-using Microsoft.VsSDK.UnitTestLibrary;
-using Microsoft.VisualStudio.Shell.Interop;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-using Microsoft.VisualStudio.Shell;
-using VitaliiGanzha.VSPackageInstall;
-
-namespace VSPackageInstall_UnitTests.MenuItemTests
-{
- [TestClass()]
- public class MenuItemTest
- {
- ///
- /// Verify that a new menu command object gets added to the OleMenuCommandService.
- /// This action takes place In the Initialize method of the Package object
- ///
- [TestMethod]
- public void InitializeMenuCommand()
- {
- // Create the package
- IVsPackage package = new VSPackageInstallPackage() as IVsPackage;
- Assert.IsNotNull(package, "The object does not implement IVsPackage");
-
- // Create a basic service provider
- OleServiceProvider serviceProvider = OleServiceProvider.CreateOleServiceProviderWithBasicServices();
-
- // Site the package
- Assert.AreEqual(0, package.SetSite(serviceProvider), "SetSite did not return S_OK");
-
- //Verify that the menu command can be found
- CommandID menuCommandID = new CommandID(VitaliiGanzha.VSPackageInstall.GuidList.guidVSPackageInstallCmdSet, (int)VitaliiGanzha.VSPackageInstall.PkgCmdIDList.cmdidVsDing);
- System.Reflection.MethodInfo info = typeof(Package).GetMethod("GetService", BindingFlags.Instance | BindingFlags.NonPublic);
- Assert.IsNotNull(info);
- OleMenuCommandService mcs = info.Invoke(package, new object[] { (typeof(IMenuCommandService)) }) as OleMenuCommandService;
- Assert.IsNotNull(mcs.FindCommand(menuCommandID));
- }
-
- [TestMethod]
- public void MenuItemCallback()
- {
- // Create the package
- IVsPackage package = new VSPackageInstallPackage() as IVsPackage;
- Assert.IsNotNull(package, "The object does not implement IVsPackage");
-
- // Create a basic service provider
- OleServiceProvider serviceProvider = OleServiceProvider.CreateOleServiceProviderWithBasicServices();
-
- // Create a UIShell service mock and proffer the service so that it can called from the MenuItemCallback method
- BaseMock uishellMock = UIShellServiceMock.GetUiShellInstance();
- serviceProvider.AddService(typeof(SVsUIShell), uishellMock, true);
-
- // Site the package
- Assert.AreEqual(0, package.SetSite(serviceProvider), "SetSite did not return S_OK");
-
- //Invoke private method on package class and observe that the method does not throw
- System.Reflection.MethodInfo info = package.GetType().GetMethod("MenuItemCallback", BindingFlags.Instance | BindingFlags.NonPublic);
- Assert.IsNotNull(info, "Failed to get the private method MenuItemCallback throug refplection");
- info.Invoke(package, new object[] { null, null });
-
- //Clean up services
- serviceProvider.RemoveService(typeof(SVsUIShell));
-
- }
- }
-}
diff --git a/VSPackageInstall/VSPackageInstall_UnitTests/MenuItemTests/UIShellServiceMock.cs b/VSPackageInstall/VSPackageInstall_UnitTests/MenuItemTests/UIShellServiceMock.cs
deleted file mode 100644
index 2d9b464..0000000
--- a/VSPackageInstall/VSPackageInstall_UnitTests/MenuItemTests/UIShellServiceMock.cs
+++ /dev/null
@@ -1,76 +0,0 @@
-/***************************************************************************
-
-Copyright (c) Microsoft Corporation. All rights reserved.
-This code is licensed under the Visual Studio SDK license terms.
-THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-
-***************************************************************************/
-
-using System;
-using Microsoft.VisualStudio;
-using Microsoft.VisualStudio.Shell.Interop;
-using Microsoft.VsSDK.UnitTestLibrary;
-
-namespace VSPackageInstall_UnitTests
-{
- static class UIShellServiceMock
- {
- private static GenericMockFactory uiShellFactory;
-
- #region UiShell Getters
- ///
- /// Returns an IVsUiShell that does not implement any methods
- ///
- ///
- internal static BaseMock GetUiShellInstance()
- {
- if (uiShellFactory == null)
- {
- uiShellFactory = new GenericMockFactory("UiShell", new Type[] { typeof(IVsUIShell), typeof(IVsUIShellOpenDocument) });
- }
- BaseMock uiShell = uiShellFactory.GetInstance();
- return uiShell;
- }
-
- ///
- /// Get an IVsUiShell that implements SetWaitCursor, SaveDocDataToFile, ShowMessageBox
- ///
- /// uishell mock
- internal static BaseMock GetUiShellInstance0()
- {
- BaseMock uiShell = GetUiShellInstance();
- string name = string.Format("{0}.{1}", typeof(IVsUIShell).FullName, "SetWaitCursor");
- uiShell.AddMethodCallback(name, new EventHandler(SetWaitCursorCallBack));
-
- name = string.Format("{0}.{1}", typeof(IVsUIShell).FullName, "SaveDocDataToFile");
- uiShell.AddMethodCallback(name, new EventHandler(SaveDocDataToFileCallBack));
-
- name = string.Format("{0}.{1}", typeof(IVsUIShell).FullName, "ShowMessageBox");
- uiShell.AddMethodCallback(name, new EventHandler(ShowMessageBoxCallBack));
- return uiShell;
- }
- #endregion
-
- #region Callbacks
- private static void SetWaitCursorCallBack(object caller, CallbackArgs arguments)
- {
- arguments.ReturnValue = VSConstants.S_OK;
- }
-
- private static void SaveDocDataToFileCallBack(object caller, CallbackArgs arguments)
- {
- arguments.ReturnValue = VSConstants.S_OK;
- }
-
- private static void ShowMessageBoxCallBack(object caller, CallbackArgs arguments)
- {
- arguments.ReturnValue = VSConstants.S_OK;
- arguments.SetParameter(10, (int)System.Windows.Forms.DialogResult.Yes);
- }
-
- #endregion
- }
-}
\ No newline at end of file
diff --git a/VSPackageInstall/VSPackageInstall_UnitTests/MyToolWindowTest/MyToolWindow.cs b/VSPackageInstall/VSPackageInstall_UnitTests/MyToolWindowTest/MyToolWindow.cs
deleted file mode 100644
index 23e98ae..0000000
--- a/VSPackageInstall/VSPackageInstall_UnitTests/MyToolWindowTest/MyToolWindow.cs
+++ /dev/null
@@ -1,58 +0,0 @@
-/***************************************************************************
-
-Copyright (c) Microsoft Corporation. All rights reserved.
-This code is licensed under the Visual Studio SDK license terms.
-THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-
-***************************************************************************/
-
-using System;
-using System.Collections;
-using System.Text;
-using System.Reflection;
-using Microsoft.VsSDK.UnitTestLibrary;
-using Microsoft.VisualStudio.Shell.Interop;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-using Microsoft.VSSDK.Tools.VsIdeTesting;
-using VitaliiGanzha.VSPackageInstall;
-
-namespace VSPackageInstall_UnitTests.MyToolWindowTest
-{
- ///
- ///This is a test class for MyToolWindowTest and is intended
- ///to contain all MyToolWindowTest Unit Tests
- ///
- [TestClass()]
- public class MyToolWindowTest
- {
-
- ///
- ///MyToolWindow Constructor test
- ///
- [TestMethod()]
- public void MyToolWindowConstructorTest()
- {
-
- MyToolWindow target = new MyToolWindow();
- Assert.IsNotNull(target, "Failed to create an instance of MyToolWindow");
-
- MethodInfo method = target.GetType().GetMethod("get_Content", BindingFlags.Public | BindingFlags.Instance);
- Assert.IsNotNull(method.Invoke(target, null), "MyControl object was not instantiated");
-
- }
-
- ///
- ///Verify the Content property is valid.
- ///
- [TestMethod()]
- public void WindowPropertyTest()
- {
- MyToolWindow target = new MyToolWindow();
- Assert.IsNotNull(target.Content, "Content property was null");
- }
-
- }
-}
diff --git a/VSPackageInstall/VSPackageInstall_UnitTests/MyToolWindowTest/ShowToolWindow.cs b/VSPackageInstall/VSPackageInstall_UnitTests/MyToolWindowTest/ShowToolWindow.cs
deleted file mode 100644
index bc7e9c5..0000000
--- a/VSPackageInstall/VSPackageInstall_UnitTests/MyToolWindowTest/ShowToolWindow.cs
+++ /dev/null
@@ -1,77 +0,0 @@
-/***************************************************************************
-
-Copyright (c) Microsoft Corporation. All rights reserved.
-This code is licensed under the Visual Studio SDK license terms.
-THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-
-***************************************************************************/
-
-using System;
-using System.Collections;
-using System.Text;
-using System.Reflection;
-using Microsoft.VsSDK.UnitTestLibrary;
-using Microsoft.VisualStudio.Shell.Interop;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-using Microsoft.VSSDK.Tools.VsIdeTesting;
-using VitaliiGanzha.VSPackageInstall;
-
-namespace VSPackageInstall_UnitTests.MyToolWindowTest
-{
- [TestClass()]
- public class ShowToolWindowTest
- {
-
- [TestMethod()]
- public void ValidateToolWindowShown()
- {
- IVsPackage package = new VSPackageInstallPackage() as IVsPackage;
-
- // Create a basic service provider
- OleServiceProvider serviceProvider = OleServiceProvider.CreateOleServiceProviderWithBasicServices();
-
- //Add uishell service that knows how to create a toolwindow
- BaseMock uiShellService = UIShellServiceMock.GetUiShellInstanceCreateToolWin();
- serviceProvider.AddService(typeof(SVsUIShell), uiShellService, false);
-
- // Site the package
- Assert.AreEqual(0, package.SetSite(serviceProvider), "SetSite did not return S_OK");
-
- MethodInfo method = typeof(VSPackageInstallPackage).GetMethod("ShowToolWindow", BindingFlags.NonPublic | BindingFlags.Instance);
-
- object result = method.Invoke(package, new object[] { null, null });
- }
-
- [TestMethod()]
- [ExpectedException(typeof(InvalidOperationException), "Did not throw expected exception when windowframe object was null")]
- public void ShowToolwindowNegativeTest()
- {
- IVsPackage package = new VSPackageInstallPackage() as IVsPackage;
-
- // Create a basic service provider
- OleServiceProvider serviceProvider = OleServiceProvider.CreateOleServiceProviderWithBasicServices();
-
- //Add uishell service that knows how to create a toolwindow
- BaseMock uiShellService = UIShellServiceMock.GetUiShellInstanceCreateToolWinReturnsNull();
- serviceProvider.AddService(typeof(SVsUIShell), uiShellService, false);
-
- // Site the package
- Assert.AreEqual(0, package.SetSite(serviceProvider), "SetSite did not return S_OK");
-
- MethodInfo method = typeof(VSPackageInstallPackage).GetMethod("ShowToolWindow", BindingFlags.NonPublic | BindingFlags.Instance);
-
- //Invoke thows TargetInvocationException, but we want it's inner Exception thrown by ShowToolWindow, InvalidOperationException.
- try
- {
- object result = method.Invoke(package, new object[] { null, null });
- }
- catch (Exception e)
- {
- throw e.InnerException;
- }
- }
- }
-}
diff --git a/VSPackageInstall/VSPackageInstall_UnitTests/MyToolWindowTest/UIShellServiceMock.cs b/VSPackageInstall/VSPackageInstall_UnitTests/MyToolWindowTest/UIShellServiceMock.cs
deleted file mode 100644
index 404dfb6..0000000
--- a/VSPackageInstall/VSPackageInstall_UnitTests/MyToolWindowTest/UIShellServiceMock.cs
+++ /dev/null
@@ -1,84 +0,0 @@
-/***************************************************************************
-
-Copyright (c) Microsoft Corporation. All rights reserved.
-This code is licensed under the Visual Studio SDK license terms.
-THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-
-***************************************************************************/
-
-using System;
-using Microsoft.VisualStudio;
-using Microsoft.VisualStudio.Shell.Interop;
-using Microsoft.VsSDK.UnitTestLibrary;
-
-namespace VSPackageInstall_UnitTests.MyToolWindowTest
-{
- static class UIShellServiceMock
- {
- private static GenericMockFactory uiShellFactory;
-
- #region UiShell Getters
- ///
- /// Returns an IVsUiShell that does not implement any methods
- ///
- ///
- internal static BaseMock GetUiShellInstance()
- {
- if (uiShellFactory == null)
- {
- uiShellFactory = new GenericMockFactory("UiShell", new Type[] { typeof(IVsUIShell), typeof(IVsUIShellOpenDocument) });
- }
- BaseMock uiShell = uiShellFactory.GetInstance();
- return uiShell;
- }
-
- ///
- /// Get an IVsUiShell that implement CreateToolWindow
- ///
- /// uishell mock
- internal static BaseMock GetUiShellInstanceCreateToolWin()
- {
- BaseMock uiShell = GetUiShellInstance();
- string name = string.Format("{0}.{1}", typeof(IVsUIShell).FullName, "CreateToolWindow");
- uiShell.AddMethodCallback(name, new EventHandler(CreateToolWindowCallBack));
-
- return uiShell;
- }
-
- ///
- /// Get an IVsUiShell that implement CreateToolWindow (negative test)
- ///
- /// uishell mock
- internal static BaseMock GetUiShellInstanceCreateToolWinReturnsNull()
- {
- BaseMock uiShell = GetUiShellInstance();
- string name = string.Format("{0}.{1}", typeof(IVsUIShell).FullName, "CreateToolWindow");
- uiShell.AddMethodCallback(name, new EventHandler(CreateToolWindowNegativeTestCallBack));
-
- return uiShell;
- }
- #endregion
-
- #region Callbacks
- private static void CreateToolWindowCallBack(object caller, CallbackArgs arguments)
- {
- arguments.ReturnValue = VSConstants.S_OK;
-
- // Create the output mock object for the frame
- IVsWindowFrame frame = WindowFrameMock.GetBaseFrame();
- arguments.SetParameter(9, frame);
- }
-
- private static void CreateToolWindowNegativeTestCallBack(object caller, CallbackArgs arguments)
- {
- arguments.ReturnValue = VSConstants.S_OK;
-
- //set the windowframe object to null
- arguments.SetParameter(9, null);
- }
- #endregion
- }
-}
\ No newline at end of file
diff --git a/VSPackageInstall/VSPackageInstall_UnitTests/MyToolWindowTest/WindowFrameMock.cs b/VSPackageInstall/VSPackageInstall_UnitTests/MyToolWindowTest/WindowFrameMock.cs
deleted file mode 100644
index 90d190c..0000000
--- a/VSPackageInstall/VSPackageInstall_UnitTests/MyToolWindowTest/WindowFrameMock.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-/***************************************************************************
-
-Copyright (c) Microsoft Corporation. All rights reserved.
-This code is licensed under the Visual Studio SDK license terms.
-THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-
-***************************************************************************/
-
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Microsoft.VsSDK.UnitTestLibrary;
-using Microsoft.VisualStudio;
-using Microsoft.VisualStudio.Shell.Interop;
-
-namespace VSPackageInstall_UnitTests.MyToolWindowTest
-{
- class WindowFrameMock
- {
- const string propertiesName = "properties";
-
- private static GenericMockFactory frameFactory = null;
-
- ///
- /// Return a IVsWindowFrame without any special implementation
- ///
- ///
- internal static IVsWindowFrame GetBaseFrame()
- {
- if (frameFactory == null)
- frameFactory = new GenericMockFactory("WindowFrame", new Type[] { typeof(IVsWindowFrame), typeof(IVsWindowFrame2) });
- IVsWindowFrame frame = (IVsWindowFrame)frameFactory.GetInstance();
- return frame;
- }
- }
-}
diff --git a/VSPackageInstall/VSPackageInstall_UnitTests/PackageTest.cs b/VSPackageInstall/VSPackageInstall_UnitTests/PackageTest.cs
deleted file mode 100644
index bcf1b0a..0000000
--- a/VSPackageInstall/VSPackageInstall_UnitTests/PackageTest.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-/***************************************************************************
-
-Copyright (c) Microsoft Corporation. All rights reserved.
-This code is licensed under the Visual Studio SDK license terms.
-THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-
-***************************************************************************/
-
-using System;
-using System.Collections;
-using System.Text;
-using System.Reflection;
-using Microsoft.VsSDK.UnitTestLibrary;
-using Microsoft.VisualStudio.Shell.Interop;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-using VitaliiGanzha.VSPackageInstall;
-
-namespace VSPackageInstall_UnitTests
-{
- [TestClass()]
- public class PackageTest
- {
- [TestMethod()]
- public void CreateInstance()
- {
- VSPackageInstallPackage package = new VSPackageInstallPackage();
- }
-
- [TestMethod()]
- public void IsIVsPackage()
- {
- VSPackageInstallPackage package = new VSPackageInstallPackage();
- Assert.IsNotNull(package as IVsPackage, "The object does not implement IVsPackage");
- }
-
- [TestMethod()]
- public void SetSite()
- {
- // Create the package
- IVsPackage package = new VSPackageInstallPackage() as IVsPackage;
- Assert.IsNotNull(package, "The object does not implement IVsPackage");
-
- // Create a basic service provider
- OleServiceProvider serviceProvider = OleServiceProvider.CreateOleServiceProviderWithBasicServices();
-
- // Site the package
- Assert.AreEqual(0, package.SetSite(serviceProvider), "SetSite did not return S_OK");
-
- // Unsite the package
- Assert.AreEqual(0, package.SetSite(null), "SetSite(null) did not return S_OK");
- }
- }
-}
diff --git a/VSPackageInstall/VSPackageInstall_UnitTests/VSPackageInstall_UnitTests.csproj b/VSPackageInstall/VSPackageInstall_UnitTests/VSPackageInstall_UnitTests.csproj
deleted file mode 100644
index 76429a2..0000000
--- a/VSPackageInstall/VSPackageInstall_UnitTests/VSPackageInstall_UnitTests.csproj
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
-
- Debug
- AnyCPU
- 2.0
- {E620FC0C-6208-4216-9899-47DF43578E4C}
- Library
- Properties
- VSPackageInstall_UnitTests
- VSPackageInstall_UnitTests
- v4.5
- {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
-
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
- Key.snk
-
-
- true
-
-
-
-
-
-
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {20191D13-7CC1-4F9B-9CB8-42F22ACE4CA6}
- VSPackageInstall
-
-
-
-
\ No newline at end of file
diff --git a/VsDingExtension.sln b/VsDingExtension.sln
index 8d4d4f1..b15e144 100644
--- a/VsDingExtension.sln
+++ b/VsDingExtension.sln
@@ -1,21 +1,15 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
-VisualStudioVersion = 12.0.21005.1
+VisualStudioVersion = 12.0.30110.0
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VsDingExtension", "VsDingExtension\VsDingExtension.csproj", "{54C786E5-FD14-4036-92AE-E9F25B71534B}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VSPackageInstall", "VSPackageInstall\VSPackageInstall.csproj", "{20191D13-7CC1-4F9B-9CB8-42F22ACE4CA6}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VSPackageInstall_IntegrationTests", "VSPackageInstall\VSPackageInstall_IntegrationTests\VSPackageInstall_IntegrationTests.csproj", "{77A542CC-52C0-4387-B57B-63AF5F597EA1}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{5BD9D4DB-8683-4698-8D24-01EE7306F73A}"
ProjectSection(SolutionItems) = preProject
IntegrationTests.testsettings = IntegrationTests.testsettings
UnitTests.testsettings = UnitTests.testsettings
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VSPackageInstall_UnitTests", "VSPackageInstall\VSPackageInstall_UnitTests\VSPackageInstall_UnitTests.csproj", "{E620FC0C-6208-4216-9899-47DF43578E4C}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VsDingExtensionProject", "VsDingExtensionProject\VsDingExtensionProject.csproj", "{3BEC1E8B-59C5-439E-AE97-8FF4B3E6B0C1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -23,22 +17,10 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {54C786E5-FD14-4036-92AE-E9F25B71534B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {54C786E5-FD14-4036-92AE-E9F25B71534B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {54C786E5-FD14-4036-92AE-E9F25B71534B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {54C786E5-FD14-4036-92AE-E9F25B71534B}.Release|Any CPU.Build.0 = Release|Any CPU
- {20191D13-7CC1-4F9B-9CB8-42F22ACE4CA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {20191D13-7CC1-4F9B-9CB8-42F22ACE4CA6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {20191D13-7CC1-4F9B-9CB8-42F22ACE4CA6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {20191D13-7CC1-4F9B-9CB8-42F22ACE4CA6}.Release|Any CPU.Build.0 = Release|Any CPU
- {77A542CC-52C0-4387-B57B-63AF5F597EA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {77A542CC-52C0-4387-B57B-63AF5F597EA1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {77A542CC-52C0-4387-B57B-63AF5F597EA1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {77A542CC-52C0-4387-B57B-63AF5F597EA1}.Release|Any CPU.Build.0 = Release|Any CPU
- {E620FC0C-6208-4216-9899-47DF43578E4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E620FC0C-6208-4216-9899-47DF43578E4C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E620FC0C-6208-4216-9899-47DF43578E4C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E620FC0C-6208-4216-9899-47DF43578E4C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3BEC1E8B-59C5-439E-AE97-8FF4B3E6B0C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3BEC1E8B-59C5-439E-AE97-8FF4B3E6B0C1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3BEC1E8B-59C5-439E-AE97-8FF4B3E6B0C1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3BEC1E8B-59C5-439E-AE97-8FF4B3E6B0C1}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/VsDingExtension/AssemblyInfo.cs b/VsDingExtension/AssemblyInfo.cs
deleted file mode 100644
index 9f505ee..0000000
--- a/VsDingExtension/AssemblyInfo.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-
-//
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-//
-[assembly: AssemblyTitle("")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("")]
-[assembly: AssemblyCopyright("")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-//
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Revision
-// Build Number
-//
-// You can specify all the value or you can default the Revision and Build Numbers
-// by using the '*' as shown below:
-
-[assembly: AssemblyVersion("1.0.*")]
-
-//
-// In order to sign your assembly you must specify a key to use. Refer to the
-// Microsoft .NET Framework documentation for more information on assembly signing.
-//
-// Use the attributes below to control which key is used for signing.
-//
-// Notes:
-// (*) If no key is specified - the assembly cannot be signed.
-// (*) KeyName refers to a key that has been installed in the Crypto Service
-// Provider (CSP) on your machine.
-// (*) If the key file and a key name attributes are both specified, the
-// following processing occurs:
-// (1) If the KeyName can be found in the CSP - that key is used.
-// (2) If the KeyName does not exist and the KeyFile does exist, the key
-// in the file is installed into the CSP and used.
-// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
-// documentation for more information on this.
-//
-[assembly: AssemblyDelaySign(false)]
-[assembly: AssemblyKeyFile("")]
-[assembly: AssemblyKeyName("")]
diff --git a/VsDingExtension/Connect.cs b/VsDingExtension/Connect.cs
deleted file mode 100644
index 908b1cc..0000000
--- a/VsDingExtension/Connect.cs
+++ /dev/null
@@ -1,65 +0,0 @@
-using System;
-using Extensibility;
-using EnvDTE;
-using EnvDTE80;
-namespace VsDingExtension
-{
- /// The object for implementing an Add-in.
- ///
- public class Connect : IDTExtensibility2
- {
- /// Implements the constructor for the Add-in object. Place your initialization code within this method.
- public Connect()
- {
- }
-
- /// Implements the OnConnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being loaded.
- /// Root object of the host application.
- /// Describes how the Add-in is being loaded.
- /// Object representing this Add-in.
- ///
- public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
- {
- applicationObject = (DTE2)application;
- addInInstance = (AddIn)addInInst;
- }
-
- /// Implements the OnDisconnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being unloaded.
- /// Describes how the Add-in is being unloaded.
- /// Array of parameters that are host application specific.
- ///
- public void OnDisconnection(ext_DisconnectMode disconnectMode, ref Array custom)
- {
- }
-
- /// Implements the OnAddInsUpdate method of the IDTExtensibility2 interface. Receives notification when the collection of Add-ins has changed.
- /// Array of parameters that are host application specific.
- ///
- public void OnAddInsUpdate(ref Array custom)
- {
- }
-
- /// Implements the OnStartupComplete method of the IDTExtensibility2 interface. Receives notification that the host application has completed loading.
- /// Array of parameters that are host application specific.
- ///
- public void OnStartupComplete(ref Array custom)
- {
- applicationObject.Events.BuildEvents.OnBuildDone += BuildEventsOnOnBuildDone;
- }
-
- private void BuildEventsOnOnBuildDone(vsBuildScope scope, vsBuildAction action)
- {
- System.Media.SystemSounds.Asterisk.Play();
- }
-
- /// Implements the OnBeginShutdown method of the IDTExtensibility2 interface. Receives notification that the host application is being unloaded.
- /// Array of parameters that are host application specific.
- ///
- public void OnBeginShutdown(ref Array custom)
- {
- }
-
- private DTE2 applicationObject;
- private AddIn addInInstance;
- }
-}
\ No newline at end of file
diff --git a/VsDingExtension/VsDingExtension.AddIn b/VsDingExtension/VsDingExtension.AddIn
deleted file mode 100644
index 55ebe90..0000000
Binary files a/VsDingExtension/VsDingExtension.AddIn and /dev/null differ
diff --git a/VsDingExtension/VsDingExtension.csproj b/VsDingExtension/VsDingExtension.csproj
deleted file mode 100644
index 2a50c07..0000000
--- a/VsDingExtension/VsDingExtension.csproj
+++ /dev/null
@@ -1,139 +0,0 @@
-
-
-
- Debug
- AnyCPU
- 8.0.30424
- 2.0
- {54C786E5-FD14-4036-92AE-E9F25B71534B}
- Library
-
-
- false
- VsDingExtension
- .\bin\
- v4.5
-
-
-
- true
- false
- .\bin\Debug\
- false
- DEBUG;TRACE
- 4
- false
- false
- VsDingExtension.xml
-
-
- false
- true
- .\bin\Release\
- false
- TRACE
- 4
- false
- false
- VsDingExtension.xml
-
-
- VsDingExtension
-
-
-
- False
-
-
-
-
-
-
-
-
-
- Code
-
-
- Code
-
-
-
-
- {80CC9F66-E7D8-4DDD-85B6-D9E6CD0E93E2}
- 8
- 0
- 0
- primary
- False
- False
-
-
- {26AD1324-4B7C-44BC-84F8-B86AED45729F}
- 10
- 0
- 0
- primary
- False
- False
-
-
- {1A31287A-4D7D-413E-8E32-3B374931BD89}
- 8
- 0
- 0
- primary
- False
- False
-
-
- {2CE2370E-D744-4936-A090-3FFFE667B0E1}
- 9
- 0
- 0
- primary
- False
- False
-
-
- {1CBA492E-7263-47BB-87FE-639000619B15}
- 8
- 0
- 0
- primary
- False
- False
-
-
- {00020430-0000-0000-C000-000000000046}
- 2
- 0
- 0
- primary
- False
- False
-
-
-
-
- VsDingExtension - For Testing.AddIn
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/VsDingExtension/VsDingExtension.xml b/VsDingExtension/VsDingExtension.xml
deleted file mode 100644
index ffa1530..0000000
--- a/VsDingExtension/VsDingExtension.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
- VsDingExtension
-
-
-
- The object for implementing an Add-in.
-
-
-
- Implements the constructor for the Add-in object. Place your initialization code within this method.
-
-
- Implements the OnConnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being loaded.
- Root object of the host application.
- Describes how the Add-in is being loaded.
- Object representing this Add-in.
-
-
-
- Implements the OnDisconnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being unloaded.
- Describes how the Add-in is being unloaded.
- Array of parameters that are host application specific.
-
-
-
- Implements the OnAddInsUpdate method of the IDTExtensibility2 interface. Receives notification when the collection of Add-ins has changed.
- Array of parameters that are host application specific.
-
-
-
- Implements the OnStartupComplete method of the IDTExtensibility2 interface. Receives notification that the host application has completed loading.
- Array of parameters that are host application specific.
-
-
-
- Implements the OnBeginShutdown method of the IDTExtensibility2 interface. Receives notification that the host application is being unloaded.
- Array of parameters that are host application specific.
-
-
-
-
diff --git a/VSPackageInstall/GlobalSuppressions.cs b/VsDingExtensionProject/GlobalSuppressions.cs
similarity index 100%
rename from VSPackageInstall/GlobalSuppressions.cs
rename to VsDingExtensionProject/GlobalSuppressions.cs
diff --git a/VsDingExtensionProject/Guids.cs b/VsDingExtensionProject/Guids.cs
new file mode 100644
index 0000000..90438f2
--- /dev/null
+++ b/VsDingExtensionProject/Guids.cs
@@ -0,0 +1,14 @@
+// Guids.cs
+// MUST match guids.h
+using System;
+
+namespace VitaliiGanzha.VsDingExtensionProject
+{
+ static class GuidList
+ {
+ public const string guidVsDingExtensionProjectPkgString = "26ba08d0-0d25-4479-8684-3054dd122876";
+ public const string guidVsDingExtensionProjectCmdSetString = "85fa6948-b83a-4626-85da-51b8bb350053";
+
+ public static readonly Guid guidVsDingExtensionProjectCmdSet = new Guid(guidVsDingExtensionProjectCmdSetString);
+ };
+}
\ No newline at end of file
diff --git a/VsDingExtensionProject/Key.snk b/VsDingExtensionProject/Key.snk
new file mode 100644
index 0000000..6e27b7f
Binary files /dev/null and b/VsDingExtensionProject/Key.snk differ
diff --git a/VSPackageInstall/Properties/AssemblyInfo.cs b/VsDingExtensionProject/Properties/AssemblyInfo.cs
similarity index 53%
rename from VSPackageInstall/Properties/AssemblyInfo.cs
rename to VsDingExtensionProject/Properties/AssemblyInfo.cs
index 51c3ff4..92e3d86 100644
--- a/VSPackageInstall/Properties/AssemblyInfo.cs
+++ b/VsDingExtensionProject/Properties/AssemblyInfo.cs
@@ -7,11 +7,11 @@
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
-[assembly: AssemblyTitle("VSPackageInstall")]
+[assembly: AssemblyTitle("VsDingExtensionProject")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Vitalii Ganzha")]
-[assembly: AssemblyProduct("VSPackageInstall")]
+[assembly: AssemblyProduct("VsDingExtensionProject")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@@ -32,5 +32,5 @@
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
-[assembly: InternalsVisibleTo("VSPackageInstall_IntegrationTests, PublicKey=00240000048000009400000006020000002400005253413100040000010001004bcbc34c62abe4c7cbb70dd208ebb4958e5f0fa40d49b5cb7745114737e7deba8e9227e32bb0c06fba88912c428184c837e96865ef4f98d7302d5f9f184a93906e2fdd69f9defe190ad7605078c48a780222cd33b3655512d71febdf8bfcf755ccb9037b9369939cd85bcc0b1ef12938bd1b6802f9284e657dd7d386555209b5")]
-[assembly: InternalsVisibleTo("VSPackageInstall_UnitTests, PublicKey=00240000048000009400000006020000002400005253413100040000010001004bcbc34c62abe4c7cbb70dd208ebb4958e5f0fa40d49b5cb7745114737e7deba8e9227e32bb0c06fba88912c428184c837e96865ef4f98d7302d5f9f184a93906e2fdd69f9defe190ad7605078c48a780222cd33b3655512d71febdf8bfcf755ccb9037b9369939cd85bcc0b1ef12938bd1b6802f9284e657dd7d386555209b5")]
+
+
diff --git a/VSPackageInstall/Resources.Designer.cs b/VsDingExtensionProject/Resources.Designer.cs
similarity index 79%
rename from VSPackageInstall/Resources.Designer.cs
rename to VsDingExtensionProject/Resources.Designer.cs
index 2bd9a14..e79e744 100644
--- a/VSPackageInstall/Resources.Designer.cs
+++ b/VsDingExtensionProject/Resources.Designer.cs
@@ -8,7 +8,7 @@
//
//------------------------------------------------------------------------------
-namespace VitaliiGanzha.VSPackageInstall {
+namespace VitaliiGanzha.VsDingExtensionProject {
using System;
@@ -39,7 +39,7 @@ internal Resources() {
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("VitaliiGanzha.VSPackageInstall.Resources", typeof(Resources).Assembly);
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("VitaliiGanzha.VsDingExtensionProject.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
@@ -60,22 +60,5 @@ internal Resources() {
}
}
- ///
- /// Looks up a localized string similar to Can not create tool window..
- ///
- internal static string CanNotCreateWindow {
- get {
- return ResourceManager.GetString("CanNotCreateWindow", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to My Tool Window.
- ///
- internal static string ToolWindowTitle {
- get {
- return ResourceManager.GetString("ToolWindowTitle", resourceCulture);
- }
- }
}
}
diff --git a/VSPackageInstall/Resources.resx b/VsDingExtensionProject/Resources.resx
similarity index 96%
rename from VSPackageInstall/Resources.resx
rename to VsDingExtensionProject/Resources.resx
index c89ac58..891c592 100644
--- a/VSPackageInstall/Resources.resx
+++ b/VsDingExtensionProject/Resources.resx
@@ -126,10 +126,4 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- Can not create tool window.
-
-
- VS Ding
-
\ No newline at end of file
diff --git a/VSPackageInstall/Resources/Package.ico b/VsDingExtensionProject/Resources/Package.ico
similarity index 100%
rename from VSPackageInstall/Resources/Package.ico
rename to VsDingExtensionProject/Resources/Package.ico
diff --git a/VSPackageInstall/VSPackage.resx b/VsDingExtensionProject/VSPackage.resx
similarity index 95%
rename from VSPackageInstall/VSPackage.resx
rename to VsDingExtensionProject/VSPackage.resx
index 18a7594..80ade04 100644
--- a/VSPackageInstall/VSPackage.resx
+++ b/VsDingExtensionProject/VSPackage.resx
@@ -129,15 +129,12 @@
- VSPackageInstall
+ VsDingExtensionProject
- Visual Studio sound notifications
+ Information about my packageResources\Package.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- Resources\Images.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
\ No newline at end of file
diff --git a/VSPackageInstall/VSPackageInstall.csproj b/VsDingExtensionProject/VsDingExtensionProject.csproj
similarity index 86%
rename from VSPackageInstall/VSPackageInstall.csproj
rename to VsDingExtensionProject/VsDingExtensionProject.csproj
index 67a5a9e..23077f0 100644
--- a/VSPackageInstall/VSPackageInstall.csproj
+++ b/VsDingExtensionProject/VsDingExtensionProject.csproj
@@ -5,17 +5,17 @@
12.0$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
-
+ DebugAnyCPU2.0
- {20191d13-7cc1-4f9b-9cb8-42f22ace4ca6}
+ {3BEC1E8B-59C5-439E-AE97-8FF4B3E6B0C1}{82b43b9b-a64c-4715-b499-d71e9ca2bd60};{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}LibraryProperties
- VitaliiGanzha.VSPackageInstall
- VSPackageInstall
+ VitaliiGanzha.VsDingExtensionProject
+ VsDingExtensionProjectTrueKey.snkv4.5
@@ -51,6 +51,9 @@
true
+
+ ..\..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\Microsoft.VisualStudio.TestWindow.Interfaces.dll
+
@@ -63,10 +66,6 @@
-
-
-
-
@@ -125,10 +124,6 @@
-
- MyControl.xaml
-
- True
@@ -136,10 +131,8 @@
Resources.resx
-
+
-
-
@@ -160,23 +153,8 @@
-
-
- Menus.ctmenu
-
-
-
-
-
-
-
-
-
- Designer
- MSBuild:Compile
- true
@@ -190,4 +168,4 @@
-->
-
+
\ No newline at end of file
diff --git a/VsDingExtensionProject/VsDingExtensionProjectPackage.cs b/VsDingExtensionProject/VsDingExtensionProjectPackage.cs
new file mode 100644
index 0000000..82974d4
--- /dev/null
+++ b/VsDingExtensionProject/VsDingExtensionProjectPackage.cs
@@ -0,0 +1,86 @@
+using System;
+using System.Diagnostics;
+using System.Globalization;
+using System.Runtime.InteropServices;
+using System.ComponentModel.Design;
+using EnvDTE;
+using EnvDTE80;
+using Microsoft.Win32;
+using Microsoft.VisualStudio;
+using Microsoft.VisualStudio.Shell.Interop;
+using Microsoft.VisualStudio.OLE.Interop;
+using Microsoft.VisualStudio.Shell;
+
+namespace VitaliiGanzha.VsDingExtensionProject
+{
+ ///
+ /// This is the class that implements the package exposed by this assembly.
+ ///
+ /// The minimum requirement for a class to be considered a valid package for Visual Studio
+ /// is to implement the IVsPackage interface and register itself with the shell.
+ /// This package uses the helper classes defined inside the Managed Package Framework (MPF)
+ /// to do it: it derives from the Package class that provides the implementation of the
+ /// IVsPackage interface and uses the registration attributes defined in the framework to
+ /// register itself and its components with the shell.
+ ///
+ // This attribute tells the PkgDef creation utility (CreatePkgDef.exe) that this class is
+ // a package.
+ [PackageRegistration(UseManagedResourcesOnly = true)]
+ // This attribute is used to register the information needed to show this package
+ // in the Help/About dialog of Visual Studio.
+ [InstalledProductRegistration("#110", "#112", "1.0", IconResourceID = 400)]
+ [Guid(GuidList.guidVsDingExtensionProjectPkgString)]
+ public sealed class VsDingExtensionProjectPackage : Package
+ {
+ private DTE2 applicationObject;
+ private AddIn addInInstance;
+
+ ///
+ /// Default constructor of the package.
+ /// Inside this method you can place any initialization code that does not require
+ /// any Visual Studio service because at this point the package object is created but
+ /// not sited yet inside Visual Studio environment. The place to do all the other
+ /// initialization is the Initialize method.
+ ///
+ public VsDingExtensionProjectPackage()
+ {
+ Debug.WriteLine(string.Format(CultureInfo.CurrentCulture, "Entering constructor for: {0}", this.ToString()));
+ }
+
+
+
+ /////////////////////////////////////////////////////////////////////////////
+ // Overridden Package Implementation
+ #region Package Members
+
+ ///
+ /// Initialization of the package; this method is called right after the package is sited, so this is the place
+ /// where you can put all the initialization code that rely on services provided by VisualStudio.
+ ///
+ protected override void Initialize()
+ {
+ Debug.WriteLine (string.Format(CultureInfo.CurrentCulture, "Entering Initialize() of: {0}", this.ToString()));
+ base.Initialize();
+
+ applicationObject = (DTE2)GetService(typeof(DTE));
+
+ applicationObject.Events.BuildEvents.OnBuildDone += BuildEventsOnOnBuildDone;
+ applicationObject.Events.DebuggerEvents.OnEnterBreakMode += DebuggerEventsOnOnEnterBreakMode;
+
+ IComponentModel componentModel = Microsoft.VisualStudio.Shell.Package.GetGlobalService(typeof(SComponentModel)) as IComponentModel;
+
+ }
+ private void DebuggerEventsOnOnEnterBreakMode(dbgEventReason reason, ref dbgExecutionAction executionAction)
+ {
+ System.Media.SystemSounds.Asterisk.Play();
+ }
+
+ private void BuildEventsOnOnBuildDone(vsBuildScope scope, vsBuildAction action)
+ {
+ System.Media.SystemSounds.Asterisk.Play();
+ }
+
+ #endregion
+
+ }
+}
diff --git a/VSPackageInstall/source.extension.vsixmanifest b/VsDingExtensionProject/source.extension.vsixmanifest
similarity index 83%
rename from VSPackageInstall/source.extension.vsixmanifest
rename to VsDingExtensionProject/source.extension.vsixmanifest
index 94e6d18..cb33ea4 100644
--- a/VSPackageInstall/source.extension.vsixmanifest
+++ b/VsDingExtensionProject/source.extension.vsixmanifest
@@ -1,9 +1,9 @@
-
- VSPackageInstall
- Visual Studio sound notifications
+
+ VsDingExtensionProject
+ Information about my package