From d189fb69d6504a01c1933368d9bdbe24fdf906d8 Mon Sep 17 00:00:00 2001 From: Christian Resma Helle Date: Thu, 24 Apr 2014 10:02:14 +0200 Subject: [PATCH] Add support for detecting the Visual Studio version --- .../CustomTool/CodeGeneratorFactory.cs | 23 +++++++++++++++++-- .../CustomTool/VisualStudioVersion.cs | 3 ++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/RESW File Code Generator/VSPackage/CustomTool/CodeGeneratorFactory.cs b/RESW File Code Generator/VSPackage/CustomTool/CodeGeneratorFactory.cs index bdd013f..3a3c113 100644 --- a/RESW File Code Generator/VSPackage/CustomTool/CodeGeneratorFactory.cs +++ b/RESW File Code Generator/VSPackage/CustomTool/CodeGeneratorFactory.cs @@ -1,6 +1,9 @@ -using System.CodeDom; +using System; using System.CodeDom.Compiler; using System.Reflection; +using EnvDTE; +using Microsoft.VisualStudio.Shell; +using Microsoft.VisualStudio.Shell.Interop; namespace ChristianHelle.DeveloperTools.CodeGenerators.Resw.VSPackage.CustomTool { @@ -8,7 +11,23 @@ namespace ChristianHelle.DeveloperTools.CodeGenerators.Resw.VSPackage.CustomTool { public ICodeGenerator Create(string className, string defaultNamespace, string inputFileContents, CodeDomProvider codeDomProvider = null, TypeAttributes? classAccessibility = null) { - return new CodeDomCodeGenerator(new ResourceParser(inputFileContents), className, defaultNamespace, codeDomProvider, classAccessibility); + return new CodeDomCodeGenerator(new ResourceParser(inputFileContents), className, defaultNamespace, codeDomProvider, classAccessibility, VisualStudioHelper.GetVersion()); + } + } + + public static class VisualStudioHelper + { + public static VisualStudioVersion GetVersion() + { + var dte = Package.GetGlobalService(typeof(SDTE)) as DTE; + var vsVersion = VisualStudioVersion.VS2012; + if (dte != null) + { + Version dteVersion; + if (Version.TryParse(dte.Version, out dteVersion) && dteVersion >= new Version(12, 0)) + vsVersion = VisualStudioVersion.VS2013; + } + return vsVersion; } } } diff --git a/RESW File Code Generator/VSPackage/CustomTool/VisualStudioVersion.cs b/RESW File Code Generator/VSPackage/CustomTool/VisualStudioVersion.cs index 983346a..a492d4c 100644 --- a/RESW File Code Generator/VSPackage/CustomTool/VisualStudioVersion.cs +++ b/RESW File Code Generator/VSPackage/CustomTool/VisualStudioVersion.cs @@ -3,6 +3,7 @@ namespace ChristianHelle.DeveloperTools.CodeGenerators.Resw.VSPackage.CustomTool public enum VisualStudioVersion { VS2012, - VS2013 + VS2013, + Unknown } } \ No newline at end of file