Add support for detecting the Visual Studio version
This commit is contained in:
@@ -1,6 +1,9 @@
|
|||||||
using System.CodeDom;
|
using System;
|
||||||
using System.CodeDom.Compiler;
|
using System.CodeDom.Compiler;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using EnvDTE;
|
||||||
|
using Microsoft.VisualStudio.Shell;
|
||||||
|
using Microsoft.VisualStudio.Shell.Interop;
|
||||||
|
|
||||||
namespace ChristianHelle.DeveloperTools.CodeGenerators.Resw.VSPackage.CustomTool
|
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)
|
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
|
public enum VisualStudioVersion
|
||||||
{
|
{
|
||||||
VS2012,
|
VS2012,
|
||||||
VS2013
|
VS2013,
|
||||||
|
Unknown
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user