Add support for detecting the Visual Studio version

This commit is contained in:
Christian Resma Helle
2014-04-24 10:02:14 +02:00
parent ebb510ea2e
commit d189fb69d6
2 changed files with 23 additions and 3 deletions
@@ -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;
}
}
}
@@ -3,6 +3,7 @@ namespace ChristianHelle.DeveloperTools.CodeGenerators.Resw.VSPackage.CustomTool
public enum VisualStudioVersion
{
VS2012,
VS2013
VS2013,
Unknown
}
}