+ Building a VS Tool Window package is easy. Deploying it apparently is not, and
+ because we deploy even at dev time with a setup.exe, we need to deploy it. VS
+ Tool Window packages use WPF UserControls though, so for now we use this
+ separate standalone EXE which uses WPF UserControls.
+
+
+
\ No newline at end of file
diff --git a/source2/VSIP/Cosmos.VS.Windows/Cosmos.VS.Windows.csproj b/source2/VSIP/Cosmos.VS.Windows/Cosmos.VS.Windows.csproj
new file mode 100644
index 000000000..d1dd5f937
--- /dev/null
+++ b/source2/VSIP/Cosmos.VS.Windows/Cosmos.VS.Windows.csproj
@@ -0,0 +1,184 @@
+
+
+
+ Debug
+ AnyCPU
+ 2.0
+ {47E8F3DC-FF3F-4CC7-8643-1807260B0B18}
+ {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Library
+ Properties
+ Cosmos.Cosmos_VS_Windows
+ Cosmos.VS.Windows
+ True
+ Key.snk
+ v4.0
+ SAK
+ SAK
+ SAK
+ SAK
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+ true
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {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
+
+
+
+
+ MyControl.xaml
+
+
+
+
+ True
+ True
+ Resources.resx
+
+
+
+
+
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ true
+ VSPackage
+
+
+
+
+ Designer
+
+
+
+
+
+
+
+ Menus.ctmenu
+
+
+
+
+
+
+
+
+
+
+
+ Designer
+ MSBuild:Compile
+
+
+
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/source2/VSIP/Cosmos.VS.Windows/Cosmos.VS.Windows.csproj.vspscc b/source2/VSIP/Cosmos.VS.Windows/Cosmos.VS.Windows.csproj.vspscc
new file mode 100644
index 000000000..feffdecaa
--- /dev/null
+++ b/source2/VSIP/Cosmos.VS.Windows/Cosmos.VS.Windows.csproj.vspscc
@@ -0,0 +1,10 @@
+""
+{
+"FILE_VERSION" = "9237"
+"ENLISTMENT_CHOICE" = "NEVER"
+"PROJECT_FILE_RELATIVE_PATH" = ""
+"NUMBER_OF_EXCLUDED_FILES" = "0"
+"ORIGINAL_PROJECT_FILE_PATH" = ""
+"NUMBER_OF_NESTED_PROJECTS" = "0"
+"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
+}
diff --git a/source2/VSIP/Cosmos.VS.Windows/Cosmos.VS.Windows.vsct b/source2/VSIP/Cosmos.VS.Windows/Cosmos.VS.Windows.vsct
new file mode 100644
index 000000000..3ab79d611
--- /dev/null
+++ b/source2/VSIP/Cosmos.VS.Windows/Cosmos.VS.Windows.vsct
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source2/VSIP/Cosmos.VS.Windows/Cosmos.VS.WindowsPackage.cs b/source2/VSIP/Cosmos.VS.Windows/Cosmos.VS.WindowsPackage.cs
new file mode 100644
index 000000000..3cb61d4d9
--- /dev/null
+++ b/source2/VSIP/Cosmos.VS.Windows/Cosmos.VS.WindowsPackage.cs
@@ -0,0 +1,95 @@
+using System;
+using System.Diagnostics;
+using System.Globalization;
+using System.Runtime.InteropServices;
+using System.ComponentModel.Design;
+using Microsoft.Win32;
+using Microsoft.VisualStudio;
+using Microsoft.VisualStudio.Shell.Interop;
+using Microsoft.VisualStudio.OLE.Interop;
+using Microsoft.VisualStudio.Shell;
+
+namespace Cosmos.Cosmos_VS_Windows
+{
+ ///
+ /// 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 informations needed to show the 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.guidCosmos_VS_WindowsPkgString)]
+ public sealed class Cosmos_VS_WindowsPackage : Package
+ {
+ ///
+ /// 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 Cosmos_VS_WindowsPackage()
+ {
+ Trace.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());
+ }
+
+
+ /////////////////////////////////////////////////////////////////////////////
+ // Overriden 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 initilaization code that rely on services provided by VisualStudio.
+ ///
+ protected override void Initialize()
+ {
+ Trace.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 tool window
+ CommandID toolwndCommandID = new CommandID(GuidList.guidCosmos_VS_WindowsCmdSet, (int)PkgCmdIDList.cmdidCosmosAssembly);
+ MenuCommand menuToolWin = new MenuCommand(ShowToolWindow, toolwndCommandID);
+ mcs.AddCommand( menuToolWin );
+ }
+ }
+ #endregion
+
+ }
+}
diff --git a/source2/VSIP/Cosmos.VS.Windows/GlobalSuppressions.cs b/source2/VSIP/Cosmos.VS.Windows/GlobalSuppressions.cs
new file mode 100644
index 000000000..f0857cbb0
--- /dev/null
+++ b/source2/VSIP/Cosmos.VS.Windows/GlobalSuppressions.cs
@@ -0,0 +1,11 @@
+// This file is used by Code Analysis to maintain SuppressMessage
+// attributes that are applied to this project. Project-level
+// suppressions either have no target or are given a specific target
+// and scoped to a namespace, type, member, etc.
+//
+// To add a suppression to this file, right-click the message in the
+// Error List, point to "Suppress Message(s)", and click "In Project
+// Suppression File". You do not need to add suppressions to this
+// file manually.
+
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1017:MarkAssembliesWithComVisible")]
diff --git a/source2/VSIP/Cosmos.VS.Windows/Guids.cs b/source2/VSIP/Cosmos.VS.Windows/Guids.cs
new file mode 100644
index 000000000..c05c95677
--- /dev/null
+++ b/source2/VSIP/Cosmos.VS.Windows/Guids.cs
@@ -0,0 +1,15 @@
+// Guids.cs
+// MUST match guids.h
+using System;
+
+namespace Cosmos.Cosmos_VS_Windows
+{
+ static class GuidList
+ {
+ public const string guidCosmos_VS_WindowsPkgString = "a82b45e9-2a89-43bd-925d-c7f0edd212aa";
+ public const string guidCosmos_VS_WindowsCmdSetString = "3d4b3f35-36e7-4cea-8acc-d9601e45c0b9";
+ public const string guidToolWindowPersistanceString = "f019fb29-c2c2-4d27-9abf-739533c939be";
+
+ public static readonly Guid guidCosmos_VS_WindowsCmdSet = new Guid(guidCosmos_VS_WindowsCmdSetString);
+ };
+}
\ No newline at end of file
diff --git a/source2/VSIP/Cosmos.VS.Windows/Key.snk b/source2/VSIP/Cosmos.VS.Windows/Key.snk
new file mode 100644
index 000000000..4f2c3e0bd
Binary files /dev/null and b/source2/VSIP/Cosmos.VS.Windows/Key.snk differ
diff --git a/source2/VSIP/Cosmos.VS.Windows/MyControl.xaml b/source2/VSIP/Cosmos.VS.Windows/MyControl.xaml
new file mode 100644
index 000000000..a93b55cb6
--- /dev/null
+++ b/source2/VSIP/Cosmos.VS.Windows/MyControl.xaml
@@ -0,0 +1,17 @@
+
+
+
+ This is a toolwindow with WPF content
+
+
+
+
diff --git a/source2/VSIP/Cosmos.VS.Windows/MyControl.xaml.cs b/source2/VSIP/Cosmos.VS.Windows/MyControl.xaml.cs
new file mode 100644
index 000000000..bd468bf90
--- /dev/null
+++ b/source2/VSIP/Cosmos.VS.Windows/MyControl.xaml.cs
@@ -0,0 +1,35 @@
+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 Cosmos.Cosmos_VS_Windows
+{
+ ///
+ /// 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()),
+ "Cosmos Assembly Window");
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/source2/VSIP/Cosmos.VS.Windows/MyToolWindow.cs b/source2/VSIP/Cosmos.VS.Windows/MyToolWindow.cs
new file mode 100644
index 000000000..bf06b053b
--- /dev/null
+++ b/source2/VSIP/Cosmos.VS.Windows/MyToolWindow.cs
@@ -0,0 +1,47 @@
+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 Cosmos.Cosmos_VS_Windows
+{
+ ///
+ /// 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("f019fb29-c2c2-4d27-9abf-739533c939be")]
+ 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/source2/VSIP/Cosmos.VS.Windows/PkgCmdID.cs b/source2/VSIP/Cosmos.VS.Windows/PkgCmdID.cs
new file mode 100644
index 000000000..6d30bcf5c
--- /dev/null
+++ b/source2/VSIP/Cosmos.VS.Windows/PkgCmdID.cs
@@ -0,0 +1,13 @@
+// PkgCmdID.cs
+// MUST match PkgCmdID.h
+using System;
+
+namespace Cosmos.Cosmos_VS_Windows
+{
+ static class PkgCmdIDList
+ {
+
+ public const uint cmdidCosmosAssembly = 0x101;
+
+ };
+}
\ No newline at end of file
diff --git a/source2/VSIP/Cosmos.VS.Windows/Properties/AssemblyInfo.cs b/source2/VSIP/Cosmos.VS.Windows/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000..0e91e9ccb
--- /dev/null
+++ b/source2/VSIP/Cosmos.VS.Windows/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System;
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 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("Cosmos.VS.Windows")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Cosmos")]
+[assembly: AssemblyProduct("Cosmos.VS.Windows")]
+[assembly: AssemblyCopyright("")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+[assembly: ComVisible(false)]
+[assembly: CLSCompliant(false)]
+[assembly: NeutralResourcesLanguage("en-US")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers
+// by using the '*' as shown below:
+
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
+
+
+
diff --git a/source2/VSIP/Cosmos.VS.Windows/Resources.Designer.cs b/source2/VSIP/Cosmos.VS.Windows/Resources.Designer.cs
new file mode 100644
index 000000000..d17e2b1a5
--- /dev/null
+++ b/source2/VSIP/Cosmos.VS.Windows/Resources.Designer.cs
@@ -0,0 +1,81 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:2.0.50727.42
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace Cosmos.Cosmos_VS_Windows {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Cosmos.Cosmos_VS_Windows.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ ///
+ /// 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/source2/VSIP/Cosmos.VS.Windows/Resources.resx b/source2/VSIP/Cosmos.VS.Windows/Resources.resx
new file mode 100644
index 000000000..bdcda7302
--- /dev/null
+++ b/source2/VSIP/Cosmos.VS.Windows/Resources.resx
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Can not create tool window.
+
+
+ Cosmos Assembly Window
+
+
\ No newline at end of file
diff --git a/source2/VSIP/Cosmos.VS.Windows/Resources/Images_24bit.bmp b/source2/VSIP/Cosmos.VS.Windows/Resources/Images_24bit.bmp
new file mode 100644
index 000000000..d4751234f
Binary files /dev/null and b/source2/VSIP/Cosmos.VS.Windows/Resources/Images_24bit.bmp differ
diff --git a/source2/VSIP/Cosmos.VS.Windows/Resources/Images_32bit.bmp b/source2/VSIP/Cosmos.VS.Windows/Resources/Images_32bit.bmp
new file mode 100644
index 000000000..2fa7ab009
Binary files /dev/null and b/source2/VSIP/Cosmos.VS.Windows/Resources/Images_32bit.bmp differ
diff --git a/source2/VSIP/Cosmos.VS.Windows/Resources/Package.ico b/source2/VSIP/Cosmos.VS.Windows/Resources/Package.ico
new file mode 100644
index 000000000..ea3b23fe8
Binary files /dev/null and b/source2/VSIP/Cosmos.VS.Windows/Resources/Package.ico differ
diff --git a/source2/VSIP/Cosmos.VS.Windows/VSPackage.resx b/source2/VSIP/Cosmos.VS.Windows/VSPackage.resx
new file mode 100644
index 000000000..a9d5b2523
--- /dev/null
+++ b/source2/VSIP/Cosmos.VS.Windows/VSPackage.resx
@@ -0,0 +1,143 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ Cosmos.VS.Windows
+
+
+ Cosmos Tool Windows Package
+
+
+ Resources\Package.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ Resources\Images_24bit.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
\ No newline at end of file
diff --git a/source2/VSIP/Cosmos.VS.Windows/source.extension.vsixmanifest b/source2/VSIP/Cosmos.VS.Windows/source.extension.vsixmanifest
new file mode 100644
index 000000000..e85d35f5c
--- /dev/null
+++ b/source2/VSIP/Cosmos.VS.Windows/source.extension.vsixmanifest
@@ -0,0 +1,25 @@
+
+
+
+ Cosmos.VS.Windows
+ Cosmos
+ 1.0
+ Cosmos Tool Windows Package
+ 1033
+ false
+
+
+ Pro
+
+
+
+
+
+
+ Visual Studio MPF
+
+
+
+ |%CurrentProject%;PkgdefProjectOutputGroup|
+
+