diff --git a/source2/VSIP/Cosmos.VS.Package/Cosmos.VS.Package.csproj b/source2/VSIP/Cosmos.VS.Package/Cosmos.VS.Package.csproj
index d0463f8b5..577a20528 100644
--- a/source2/VSIP/Cosmos.VS.Package/Cosmos.VS.Package.csproj
+++ b/source2/VSIP/Cosmos.VS.Package/Cosmos.VS.Package.csproj
@@ -136,6 +136,7 @@
SubPropertyPageBase.cs
+
@@ -174,37 +175,33 @@
-
-
- Templates\Projects\CosmosProject %28C#%29
-
Templates\Projects\CosmosProject %28C#%29
-
+
Templates\Projects\CosmosProject %28C#%29
-
+
Templates\Projects\CosmosProject %28C#%29
-
+
Templates\Projects\CosmosProject %28C#%29
-
+
Templates\Projects\CosmosProject %28C#%29
-
+
+ Templates\Projects\CosmosProject %28C#%29
+
+
+ Templates\Projects\CosmosProject %28C#%29
+
+
Templates\Projects\CosmosProject %28C#%29
-
+
Templates\Projects\CosmosProject %28C#%29
-
-
- Templates\Projects\CosmosProject %28C#%29
-
-
- Templates\Projects\CosmosProject %28C#%29
-
+
BuildPage.cs
diff --git a/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/Proj/CosmosProject.Cosmos b/source2/VSIP/Cosmos.VS.Package/Templates/CosmosProject.Cosmos
similarity index 82%
rename from source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/Proj/CosmosProject.Cosmos
rename to source2/VSIP/Cosmos.VS.Package/Templates/CosmosProject.Cosmos
index 71af3844f..5c7fcde7d 100644
--- a/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/Proj/CosmosProject.Cosmos
+++ b/source2/VSIP/Cosmos.VS.Package/Templates/CosmosProject.Cosmos
@@ -2,9 +2,9 @@
Debug
2.0
- $GeneratedGuid1$
+ $CosmosProjGuid$
false
- $safeprojectname$
+ $CosmosProjectName$
elf
@@ -32,12 +32,11 @@
false
-
- $safeprojectname$Kernel
- $GeneratedGuid2$
+
+ $KernelName$
+ $KernelGuid$
-
\ No newline at end of file
diff --git a/source2/VSIP/Cosmos.VS.Package/Templates/GenerateCosmosProjectWizard.cs b/source2/VSIP/Cosmos.VS.Package/Templates/GenerateCosmosProjectWizard.cs
new file mode 100644
index 000000000..e4404cce3
--- /dev/null
+++ b/source2/VSIP/Cosmos.VS.Package/Templates/GenerateCosmosProjectWizard.cs
@@ -0,0 +1,79 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.VisualStudio.TemplateWizard;
+using System.Windows.Forms;
+using System.IO;
+
+namespace Cosmos.VS.Package.Templates
+{
+ public class GenerateCosmosProjectWizard: IWizard
+ {
+ public void BeforeOpeningFile(EnvDTE.ProjectItem projectItem)
+ {
+ }
+
+ private static string GetTemplateString()
+ {
+ var xAsm = typeof(GenerateCosmosProjectWizard).Assembly;
+ using (var xStream = xAsm.GetManifestResourceStream(typeof(GenerateCosmosProjectWizard), "CosmosProject.Cosmos"))
+ {
+ if (xStream == null)
+ {
+ MessageBox.Show("Could not find template manifest stream!");
+ return null;
+ }
+ using (var xReader = new StreamReader(xStream))
+ {
+ return xReader.ReadToEnd();
+ }
+ }
+ }
+
+ public void ProjectFinishedGenerating(EnvDTE.Project project)
+ {
+ //project.DTE.Solution
+ var xInputString = GetTemplateString();
+ if (xInputString == null)
+ {
+ return;
+ }
+
+ xInputString = xInputString.Replace("$KernelGuid$", mGuidKernel.ToString("b"));
+ xInputString = xInputString.Replace("$CosmosProjGuid$", mGuidCosmosProj.ToString("b"));
+ xInputString = xInputString.Replace("$KernelName$", project.Name);
+ xInputString = xInputString.Replace("$CosmosProjectName$", project.Name + "Boot");
+ var xFilename = Path.GetDirectoryName(project.FullName);
+ xFilename = Path.Combine(xFilename, project.Name + "Boot");
+ xFilename += ".Cosmos";
+ File.WriteAllText(xFilename, xInputString);
+ project.DTE.Solution.AddFromFile(xFilename, false);
+ }
+
+ public void ProjectItemFinishedGenerating(EnvDTE.ProjectItem projectItem)
+ {
+ }
+
+ public void RunFinished()
+ {
+ }
+
+ private Guid mGuidKernel;
+ private Guid mGuidCosmosProj;
+
+ public void RunStarted(object automationObject, Dictionary replacementsDictionary, WizardRunKind runKind, object[] customParams)
+ {
+ mGuidKernel = Guid.NewGuid();
+ mGuidCosmosProj = Guid.NewGuid();
+ replacementsDictionary.Add("$KernelGuid$", mGuidKernel.ToString("B"));
+ replacementsDictionary.Add("$CosmosProjGuid$", mGuidCosmosProj.ToString("B"));
+
+ }
+
+ public bool ShouldAddProjectItem(string filePath)
+ {
+ return true;
+ }
+ }
+}
diff --git a/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/AssemblyInfo.cs b/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/AssemblyInfo.cs
similarity index 100%
rename from source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/AssemblyInfo.cs
rename to source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/AssemblyInfo.cs
diff --git a/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/CSharpProj.vstemplate b/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/CSharpProj.vstemplate
similarity index 78%
rename from source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/CSharpProj.vstemplate
rename to source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/CSharpProj.vstemplate
index 35d1dcdab..2c82c59d6 100644
--- a/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/CSharpProj.vstemplate
+++ b/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/CSharpProj.vstemplate
@@ -1,14 +1,14 @@
- ProjKernel
+ CSharp Kernel
A project for creating a Cosmos Kernel
Kernel.ico
- CSharp
+ Cosmos
true
CosmosProjectKernel
- true-->
+ true
@@ -18,6 +18,6 @@
Cosmos.VS.Package, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f4d94ac959d59ec3
- Cosmos.VS.Package.Templates.Wizards.GenerateGuidsWizard
+ Cosmos.VS.Package.Templates.GenerateCosmosProjectWizard
\ No newline at end of file
diff --git a/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/CSharpProject.csproj b/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/CSharpProject.csproj
similarity index 95%
rename from source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/CSharpProject.csproj
rename to source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/CSharpProject.csproj
index e4e3014dc..ac6148aae 100644
--- a/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/CSharpProject.csproj
+++ b/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/CSharpProject.csproj
@@ -5,7 +5,7 @@
AnyCPU
8.0.30703
2.0
- $GeneratedGuid2$
+ $KernelGuid$
Library
Properties
$safeprojectname$
diff --git a/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/CosmosProject.vstemplate b/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/CosmosProject.vstemplate
deleted file mode 100644
index dffc9042d..000000000
--- a/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/CosmosProject.vstemplate
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
- Cosmos Project
- A project for creating a Cosmos Kernel
- Kernel.ico
- Cosmos
- 50
-
-
-
-
- ProjKernel\CSharpProj.vstemplate
-
-
- Proj\CosmosProj.vstemplate
-
-
-
-
diff --git a/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/Kernel.cs b/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/Kernel.cs
similarity index 100%
rename from source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/Kernel.cs
rename to source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/Kernel.cs
diff --git a/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/Kernel.ico b/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/Kernel.ico
deleted file mode 100644
index fcdc40183..000000000
Binary files a/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/Kernel.ico and /dev/null differ