├── SafeRootProjectWizard
├── key.snk
├── RootWizard.cs
├── ChildWizard.cs
├── Properties
│ └── AssemblyInfo.cs
└── SafeRootProjectWizard.csproj
├── SolutionTemplateGenerator
├── ico.ico
├── Resources
│ ├── stg.png
│ ├── debug-run-icon.png
│ ├── __Template_large.png
│ ├── __Template_small.png
│ ├── MIT.txt
│ └── [Content_Types].xml
├── packages.config
├── MainWindow.xaml.cs
├── Properties
│ ├── Settings.settings
│ ├── Settings.Designer.cs
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ └── Resources.resx
├── Views
│ ├── Config.xaml.cs
│ └── Config.xaml
├── App.xaml
├── Core
│ ├── XmlSchema
│ │ ├── VSTemplateTemplateDataLocationField.cs
│ │ ├── VSTemplateTemplateDataRequiredFrameworkVersion.cs
│ │ ├── ItemsChoiceType.cs
│ │ ├── VSTemplateTemplateContentReferencesReference.cs
│ │ ├── VsixAssembly.cs
│ │ ├── VsixIdentifierIsolatedShell.cs
│ │ ├── VsixIdentifierSupportedFrameworkRuntimeEdition.cs
│ │ ├── VSTemplateTemplateContentCustomParameter.cs
│ │ ├── NameDescriptionIcon.cs
│ │ ├── VSTemplateTemplateContentReferences.cs
│ │ ├── ProjectTemplateLink.cs
│ │ ├── VSTemplateWizardData.cs
│ │ ├── VsixReference.cs
│ │ ├── VSTemplateTemplateContentProjectCollection.cs
│ │ ├── VsixCustomExtension.cs
│ │ ├── VsixIdentifierVisualStudio.cs
│ │ ├── VSTemplateTemplateContentProjectItem.cs
│ │ ├── SolutionFolder.cs
│ │ ├── VsixContent.cs
│ │ ├── Folder.cs
│ │ ├── VSTemplateWizardExtension.cs
│ │ ├── Vsix.cs
│ │ ├── VSTemplateTemplateContentProject.cs
│ │ ├── VSTemplateTemplateContent.cs
│ │ ├── ProjectItem.cs
│ │ ├── VSTemplate.cs
│ │ ├── VsixIdentifier.cs
│ │ └── VSTemplateTemplateData.cs
│ ├── Utils
│ │ ├── ResourceFile.cs
│ │ ├── KnownProjectTypeGuid.cs
│ │ ├── Serializer.cs
│ │ └── IoExt.cs
│ ├── ProjectSettings.cs
│ ├── TemplateGeneratorFactory.cs
│ ├── Preprocessor
│ │ ├── ModifyFactory.cs
│ │ ├── ModifyProjectFile.cs
│ │ └── ModifyCodeFile.cs
│ ├── ManifestCreator
│ │ ├── SolutionFileParser.cs
│ │ ├── Project.cs
│ │ ├── SolutionVSTemplateCreator.cs
│ │ ├── ProjectVSTemplateCreator.cs
│ │ └── VsixManifestCreator.cs
│ └── ZipSolution.cs
├── App.xaml.cs
├── BusyIndicator
│ ├── VisualStates.BusyIndicator.cs
│ └── BusyIndicator.cs
├── MVVM
│ ├── DelegateCommand.cs
│ ├── ViewModelBase.cs
│ ├── FolderBrowserDialogBehavior.cs
│ └── OpenFileDialogBoxBehavior.cs
├── MainWindow.xaml
├── ViewModels
│ └── MainWindowViewModel.cs
├── Models
│ └── OptionsGui.cs
├── SolutionTemplateGenerator.csproj
└── Themes
│ └── Generic.xaml
├── README.md
├── .github
└── issue_template.md
├── SolutionTemplateGenerator.sln
├── .gitattributes
├── .gitignore
└── LICENSE.md
/SafeRootProjectWizard/key.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VahidN/Solution-Template-Generator/HEAD/SafeRootProjectWizard/key.snk
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/ico.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VahidN/Solution-Template-Generator/HEAD/SolutionTemplateGenerator/ico.ico
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/Resources/stg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VahidN/Solution-Template-Generator/HEAD/SolutionTemplateGenerator/Resources/stg.png
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/Resources/debug-run-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VahidN/Solution-Template-Generator/HEAD/SolutionTemplateGenerator/Resources/debug-run-icon.png
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/Resources/__Template_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VahidN/Solution-Template-Generator/HEAD/SolutionTemplateGenerator/Resources/__Template_large.png
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/Resources/__Template_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VahidN/Solution-Template-Generator/HEAD/SolutionTemplateGenerator/Resources/__Template_small.png
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Solution template generator, gets a .SLN file containing multiple projects and then converts it to a .VSIX file.
2 |
3 | 
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/MainWindow.xaml.cs:
--------------------------------------------------------------------------------
1 |
2 | namespace SolutionTemplateGenerator
3 | {
4 | public partial class MainWindow
5 | {
6 | public MainWindow()
7 | {
8 | InitializeComponent();
9 | }
10 | }
11 | }
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/Views/Config.xaml.cs:
--------------------------------------------------------------------------------
1 |
2 | namespace SolutionTemplateGenerator.Views
3 | {
4 | public partial class Config
5 | {
6 | public Config()
7 | {
8 | InitializeComponent();
9 | }
10 | }
11 | }
--------------------------------------------------------------------------------
/.github/issue_template.md:
--------------------------------------------------------------------------------
1 | # Summary of the issue
2 |
3 |
4 |
5 | ## Environment
6 |
7 | ```
8 | The in-use version:
9 | Operating system:
10 | IDE: (e.g. Visual Studio 2015)
11 | ```
12 |
13 | ## Example code/Steps to reproduce:
14 |
15 | ```
16 | paste your core code
17 | ```
18 |
19 | ## Output:
20 |
21 | ```
22 | Exception message:
23 | Full Stack trace:
24 | ```
25 |
26 |
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/App.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/Core/XmlSchema/VSTemplateTemplateDataLocationField.cs:
--------------------------------------------------------------------------------
1 | using System.CodeDom.Compiler;
2 | using System.Xml.Serialization;
3 |
4 | namespace SolutionTemplateGenerator.Core.XmlSchema
5 | {
6 | [GeneratedCode("System.Xml", "2.0.50727.4927"), XmlType(AnonymousType = true, Namespace = "http://schemas.microsoft.com/developer/vstemplate/2005")]
7 | public enum VSTemplateTemplateDataLocationField
8 | {
9 | Enabled,
10 | Disabled,
11 | Hidden
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/Core/XmlSchema/VSTemplateTemplateDataRequiredFrameworkVersion.cs:
--------------------------------------------------------------------------------
1 | using System.CodeDom.Compiler;
2 | using System.Xml.Serialization;
3 |
4 | namespace SolutionTemplateGenerator.Core.XmlSchema
5 | {
6 | [GeneratedCode("System.Xml", "2.0.50727.4927"), XmlType(AnonymousType = true, Namespace = "http://schemas.microsoft.com/developer/vstemplate/2005")]
7 | public enum VSTemplateTemplateDataRequiredFrameworkVersion
8 | {
9 | Item20,
10 | Item30,
11 | Item35
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/Core/XmlSchema/ItemsChoiceType.cs:
--------------------------------------------------------------------------------
1 | using System.CodeDom.Compiler;
2 | using System.Xml.Serialization;
3 |
4 | namespace SolutionTemplateGenerator.Core.XmlSchema
5 | {
6 | [GeneratedCode("System.Xml", "2.0.50727.4927"), XmlType(Namespace = "http://schemas.microsoft.com/developer/vsx-schema/2010", IncludeInSchema = false)]
7 | public enum ItemsChoiceType
8 | {
9 | Assembly,
10 | CustomExtension,
11 | ItemTemplate,
12 | MefComponent,
13 | ProjectTemplate,
14 | ToolboxControl,
15 | VsPackage
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/Core/XmlSchema/VSTemplateTemplateContentReferencesReference.cs:
--------------------------------------------------------------------------------
1 | using System.CodeDom.Compiler;
2 | using System.Diagnostics;
3 | using System.Xml.Serialization;
4 |
5 | namespace SolutionTemplateGenerator.Core.XmlSchema
6 | {
7 | [GeneratedCode("System.Xml", "2.0.50727.4927"), DebuggerStepThrough, XmlType(AnonymousType = true, Namespace = "http://schemas.microsoft.com/developer/vstemplate/2005")]
8 | public class VSTemplateTemplateContentReferencesReference
9 | {
10 | public string Assembly
11 | {
12 | get;
13 | set;
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/Core/XmlSchema/VsixAssembly.cs:
--------------------------------------------------------------------------------
1 | using System.CodeDom.Compiler;
2 | using System.Xml;
3 | using System.Xml.Serialization;
4 |
5 | namespace SolutionTemplateGenerator.Core.XmlSchema
6 | {
7 | [GeneratedCode("System.Xml", "2.0.50727.4927"), XmlType(AnonymousType = true, Namespace = "http://schemas.microsoft.com/developer/vsx-schema/2010")]
8 | public class VsixAssembly
9 | {
10 | [XmlAttribute]
11 | public string AssemblyName
12 | {
13 | get;
14 | set;
15 | }
16 |
17 | [XmlText]
18 | public string Value
19 | {
20 | get;
21 | set;
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/Core/XmlSchema/VsixIdentifierIsolatedShell.cs:
--------------------------------------------------------------------------------
1 | using System.CodeDom.Compiler;
2 | using System.Xml;
3 | using System.Xml.Serialization;
4 |
5 | namespace SolutionTemplateGenerator.Core.XmlSchema
6 | {
7 | [GeneratedCode("System.Xml", "2.0.50727.4927"), XmlType(AnonymousType = true, Namespace = "http://schemas.microsoft.com/developer/vsx-schema/2010")]
8 | public class VsixIdentifierIsolatedShell
9 | {
10 | [XmlAttribute]
11 | public string Version
12 | {
13 | get;
14 | set;
15 | }
16 |
17 | [XmlText]
18 | public string Value
19 | {
20 | get;
21 | set;
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/Core/XmlSchema/VsixIdentifierSupportedFrameworkRuntimeEdition.cs:
--------------------------------------------------------------------------------
1 | using System.CodeDom.Compiler;
2 | using System.Xml;
3 | using System.Xml.Serialization;
4 |
5 | namespace SolutionTemplateGenerator.Core.XmlSchema
6 | {
7 | [GeneratedCode("System.Xml", "2.0.50727.4927"), XmlType(AnonymousType = true, Namespace = "http://schemas.microsoft.com/developer/vsx-schema/2010")]
8 | public class VsixIdentifierSupportedFrameworkRuntimeEdition
9 | {
10 | [XmlAttribute]
11 | public string MinVersion
12 | {
13 | get;
14 | set;
15 | }
16 |
17 | [XmlAttribute]
18 | public string MaxVersion
19 | {
20 | get;
21 | set;
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/Core/XmlSchema/VSTemplateTemplateContentCustomParameter.cs:
--------------------------------------------------------------------------------
1 | using System.CodeDom.Compiler;
2 | using System.Diagnostics;
3 | using System.Xml;
4 | using System.Xml.Serialization;
5 |
6 | namespace SolutionTemplateGenerator.Core.XmlSchema
7 | {
8 | [GeneratedCode("System.Xml", "2.0.50727.4927"), DebuggerStepThrough, XmlType(AnonymousType = true, Namespace = "http://schemas.microsoft.com/developer/vstemplate/2005")]
9 | public class VSTemplateTemplateContentCustomParameter
10 | {
11 | [XmlAttribute]
12 | public string Name
13 | {
14 | get;
15 | set;
16 | }
17 |
18 | [XmlAttribute]
19 | public string Value
20 | {
21 | get;
22 | set;
23 | }
24 | }
25 | }
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/Core/XmlSchema/NameDescriptionIcon.cs:
--------------------------------------------------------------------------------
1 | using System.CodeDom.Compiler;
2 | using System.Diagnostics;
3 | using System.Xml;
4 | using System.Xml.Serialization;
5 |
6 | namespace SolutionTemplateGenerator.Core.XmlSchema
7 | {
8 | [GeneratedCode("System.Xml", "2.0.50727.4927"), DebuggerStepThrough, XmlType(Namespace = "http://schemas.microsoft.com/developer/vstemplate/2005")]
9 | public class NameDescriptionIcon
10 | {
11 | [XmlAttribute]
12 | public string Package
13 | {
14 | get;
15 | set;
16 | }
17 |
18 | [XmlAttribute]
19 | public string ID
20 | {
21 | get;
22 | set;
23 | }
24 |
25 | [XmlText]
26 | public string Value
27 | {
28 | get;
29 | set;
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/Core/Utils/ResourceFile.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Reflection;
3 |
4 | namespace SolutionTemplateGenerator.Core.Utils
5 | {
6 | public static class ResourceFile
7 | {
8 | public static byte[] GetInputFile(string filename)
9 | {
10 | var thisAssembly = Assembly.GetExecutingAssembly();
11 | using (var stream = thisAssembly.GetManifestResourceStream(filename))
12 | {
13 | if (stream == null)
14 | throw new ArgumentException("Resource NotFound: " + filename);
15 |
16 | var bytes = new byte[stream.Length];
17 | stream.Read(bytes, 0, bytes.Length);
18 | return bytes;
19 | }
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/Core/XmlSchema/VSTemplateTemplateContentReferences.cs:
--------------------------------------------------------------------------------
1 | using System.CodeDom.Compiler;
2 | using System.Diagnostics;
3 | using System.Xml.Serialization;
4 |
5 | namespace SolutionTemplateGenerator.Core.XmlSchema
6 | {
7 | [GeneratedCode("System.Xml", "2.0.50727.4927"), DebuggerStepThrough, XmlType(AnonymousType = true, Namespace = "http://schemas.microsoft.com/developer/vstemplate/2005")]
8 | public class VSTemplateTemplateContentReferences
9 | {
10 | public VSTemplateTemplateContentReferencesReference Reference
11 | {
12 | get;
13 | set;
14 | }
15 |
16 | public VSTemplateTemplateContentReferences()
17 | {
18 | if (this.Reference == null)
19 | {
20 | this.Reference = new VSTemplateTemplateContentReferencesReference();
21 | }
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/Core/XmlSchema/ProjectTemplateLink.cs:
--------------------------------------------------------------------------------
1 | using System.CodeDom.Compiler;
2 | using System.Diagnostics;
3 | using System.Xml;
4 | using System.Xml.Serialization;
5 |
6 | namespace SolutionTemplateGenerator.Core.XmlSchema
7 | {
8 | [GeneratedCode("System.Xml", "2.0.50727.4927"), DebuggerStepThrough, XmlRoot(Namespace = "http://schemas.microsoft.com/developer/vstemplate/2005", IsNullable = false), XmlType(AnonymousType = true, Namespace = "http://schemas.microsoft.com/developer/vstemplate/2005")]
9 | public class ProjectTemplateLink
10 | {
11 | [XmlAttribute]
12 | public string ProjectName
13 | {
14 | get;
15 | set;
16 | }
17 |
18 | [XmlText]
19 | public string Value
20 | {
21 | get;
22 | set;
23 | }
24 |
25 | [XmlAttribute]
26 | public bool ReplaceParameters { set; get; }
27 | }
28 | }
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/Core/ProjectSettings.cs:
--------------------------------------------------------------------------------
1 | using System.IO;
2 | using System.Windows.Forms;
3 | using SolutionTemplateGenerator.Core.Utils;
4 | using SolutionTemplateGenerator.Models;
5 |
6 | namespace SolutionTemplateGenerator.Core
7 | {
8 | public static class ProjectSettings
9 | {
10 | private static readonly string XmlPath = Path.Combine(Application.StartupPath, "settings.xml");
11 |
12 | public static void SaveSettings(OptionsGui data)
13 | {
14 | var xml = Serializer.Serialize(data);
15 | File.WriteAllText(XmlPath, xml);
16 | }
17 |
18 | public static OptionsGui LoadSettings()
19 | {
20 | if (!File.Exists(XmlPath))
21 | return new OptionsGui();
22 |
23 | var xml = File.ReadAllText(XmlPath);
24 | return Serializer.Deserialize(xml);
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/Core/XmlSchema/VSTemplateWizardData.cs:
--------------------------------------------------------------------------------
1 | using System.CodeDom.Compiler;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.Xml;
5 | using System.Xml.Serialization;
6 |
7 | namespace SolutionTemplateGenerator.Core.XmlSchema
8 | {
9 | [GeneratedCode("System.Xml", "2.0.50727.4927"), DebuggerStepThrough, XmlType(AnonymousType = true, Namespace = "http://schemas.microsoft.com/developer/vstemplate/2005")]
10 | public class VSTemplateWizardData
11 | {
12 | [XmlAttribute]
13 | public string Name
14 | {
15 | get;
16 | set;
17 | }
18 |
19 | [XmlAnyElement]
20 | public List Any
21 | {
22 | get;
23 | set;
24 | }
25 |
26 | public VSTemplateWizardData()
27 | {
28 | if (this.Any == null)
29 | {
30 | this.Any = new List();
31 | }
32 | }
33 | }
34 | }
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/Core/Utils/KnownProjectTypeGuid.cs:
--------------------------------------------------------------------------------
1 | namespace SolutionTemplateGenerator.Core.Utils
2 | {
3 | using System.Collections.Generic;
4 |
5 | public static class KnownProjectTypeGuid
6 | {
7 | public static readonly IDictionary ProjectTypes = new Dictionary
8 | {
9 | { "{F184B08F-C81C-45F6-A57F-5ABD9991F28F}", "VisualBasic" },
10 | { "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}", "CSharp" },
11 | { "{E6FDF86B-F3D1-11D4-8576-0002A516ECE8}", "JSharp" },
12 | { "{F2A71F9B-5D33-465A-A702-920D77279786}", "FSharp" },
13 | { "{2150E333-8FDC-42A3-9474-1A3956D46DE8}", "SolutionFolder" },
14 | { "{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}", "VisualC" },
15 | { "{54435603-DBB4-11D2-8724-00A0C9A8B90C}", "Setup" },
16 | { "{E24C65DC-7377-472B-9ABA-BC803B73C61A}", "WebProject" }
17 | };
18 | }
19 | }
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/Core/XmlSchema/VsixReference.cs:
--------------------------------------------------------------------------------
1 | using System.CodeDom.Compiler;
2 | using System.Xml;
3 | using System.Xml.Serialization;
4 |
5 | namespace SolutionTemplateGenerator.Core.XmlSchema
6 | {
7 | [GeneratedCode("System.Xml", "2.0.50727.4927"), XmlType(AnonymousType = true, Namespace = "http://schemas.microsoft.com/developer/vsx-schema/2010")]
8 | public class VsixReference
9 | {
10 | public string Name
11 | {
12 | get;
13 | set;
14 | }
15 |
16 | public string MoreInfoUrl
17 | {
18 | get;
19 | set;
20 | }
21 |
22 | public string VsixPath
23 | {
24 | get;
25 | set;
26 | }
27 |
28 | [XmlAttribute]
29 | public string Id
30 | {
31 | get;
32 | set;
33 | }
34 |
35 | [XmlAttribute]
36 | public string MinVersion
37 | {
38 | get;
39 | set;
40 | }
41 |
42 | [XmlAttribute]
43 | public string MaxVersion
44 | {
45 | get;
46 | set;
47 | }
48 | }
49 | }
--------------------------------------------------------------------------------
/SolutionTemplateGenerator/Core/XmlSchema/VSTemplateTemplateContentProjectCollection.cs:
--------------------------------------------------------------------------------
1 | using System.CodeDom.Compiler;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.Xml;
5 | using System.Xml.Serialization;
6 |
7 | namespace SolutionTemplateGenerator.Core.XmlSchema
8 | {
9 | [GeneratedCode("System.Xml", "2.0.50727.4927"), DebuggerStepThrough, XmlType(AnonymousType = true, Namespace = "http://schemas.microsoft.com/developer/vstemplate/2005")]
10 | public class VSTemplateTemplateContentProjectCollection
11 | {
12 | [XmlElement("ProjectTemplateLink", typeof(ProjectTemplateLink)), XmlElement("SolutionFolder", typeof(SolutionFolder))]
13 | public List