public T4Environment([NotNull] IVsEnvironmentInformation vsEnvironmentInformation) { _vsEnvironmentInformation = vsEnvironmentInformation; int vsMajorVersion = vsEnvironmentInformation.VsVersion2.Major; if (vsMajorVersion == 10) { _platformID = new PlatformID(FrameworkIdentifier.NetFramework, new Version(4, 0)); _textTemplatingAssemblyNames = new[] { "Microsoft.VisualStudio.TextTemplating.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "Microsoft.VisualStudio.TextTemplating.Interfaces.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" }; _isSupported = true; } else if (vsMajorVersion == 11) { _platformID = new PlatformID(FrameworkIdentifier.NetFramework, new Version(4, 5)); _textTemplatingAssemblyNames = new[] { "Microsoft.VisualStudio.TextTemplating.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "Microsoft.VisualStudio.TextTemplating.Interfaces.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "Microsoft.VisualStudio.TextTemplating.Interfaces.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" }; _isSupported = true; } else _isSupported = false; }
public T4Environment([NotNull] IVsEnvironmentInformation vsEnvironmentInformation, [NotNull] RawVsServiceProvider rawVsServiceProvider) { _vsEnvironmentInformation = vsEnvironmentInformation; _components = Lazy.Of(() => new Optional<ITextTemplatingComponents>(rawVsServiceProvider.Value.GetService<STextTemplating, ITextTemplatingComponents>()), true); uint vsMajorVersion = vsEnvironmentInformation.VsVersion2.Major; switch (vsMajorVersion) { case VsVersions.Vs2010: _platformID = new PlatformID(FrameworkIdentifier.NetFramework, new Version(4, 0)); CSharpLanguageLevel = CSharpLanguageLevel.CSharp40; _textTemplatingAssemblyNames = new[] { "Microsoft.VisualStudio.TextTemplating.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "Microsoft.VisualStudio.TextTemplating.Interfaces.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" }; break; case VsVersions.Vs2012: _platformID = new PlatformID(FrameworkIdentifier.NetFramework, new Version(4, 5)); CSharpLanguageLevel = CSharpLanguageLevel.CSharp50; _textTemplatingAssemblyNames = new[] { "Microsoft.VisualStudio.TextTemplating.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "Microsoft.VisualStudio.TextTemplating.Interfaces.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "Microsoft.VisualStudio.TextTemplating.Interfaces.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" }; break; case VsVersions.Vs2013: _platformID = new PlatformID(FrameworkIdentifier.NetFramework, new Version(4, 5)); CSharpLanguageLevel = CSharpLanguageLevel.CSharp50; _textTemplatingAssemblyNames = new[] { "Microsoft.VisualStudio.TextTemplating.12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "Microsoft.VisualStudio.TextTemplating.Interfaces.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "Microsoft.VisualStudio.TextTemplating.Interfaces.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" }; break; case VsVersions.Vs2015: _platformID = new PlatformID(FrameworkIdentifier.NetFramework, new Version(4, 5)); const int vs2015Update2Build = 25123; CSharpLanguageLevel = vsEnvironmentInformation.VsVersion4.Build >= vs2015Update2Build ? CSharpLanguageLevel.CSharp60 : CSharpLanguageLevel.CSharp50; _textTemplatingAssemblyNames = new[] { "Microsoft.VisualStudio.TextTemplating.14.0, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "Microsoft.VisualStudio.TextTemplating.Interfaces.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "Microsoft.VisualStudio.TextTemplating.Interfaces.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" }; break; default: _textTemplatingAssemblyNames = EmptyArray<string>.Instance; break; } }
private static string CreateDevEnvPublicAssemblyName([NotNull] IVsEnvironmentInformation vsEnvironmentInformation, [NotNull] string name) => vsEnvironmentInformation .DevEnvInstallDir .Combine(RelativePath.Parse("PublicAssemblies\\" + name + ".dll")) .FullPath;
public T4Environment([NotNull] IVsEnvironmentInformation vsEnvironmentInformation, [NotNull] RawVsServiceProvider rawVsServiceProvider) { _vsEnvironmentInformation = vsEnvironmentInformation; _components = Lazy.Of(() => new Optional <ITextTemplatingComponents>(rawVsServiceProvider.Value.GetService <STextTemplating, ITextTemplatingComponents>()), true); switch (vsEnvironmentInformation.VsVersion2.Major) { case VsVersions.Vs2010: _platformID = new PlatformID(FrameworkIdentifier.NetFramework, new Version(4, 0)); CSharpLanguageLevel = CSharpLanguageLevel.CSharp40; _textTemplatingAssemblyNames = new[] { CreateGacAssemblyName("Microsoft.VisualStudio.TextTemplating", 10), CreateGacAssemblyName("Microsoft.VisualStudio.TextTemplating.Interfaces", 10) }; break; case VsVersions.Vs2012: _platformID = new PlatformID(FrameworkIdentifier.NetFramework, new Version(4, 5)); CSharpLanguageLevel = CSharpLanguageLevel.CSharp50; _textTemplatingAssemblyNames = new[] { CreateGacAssemblyName("Microsoft.VisualStudio.TextTemplating", 11), CreateGacAssemblyName("Microsoft.VisualStudio.TextTemplating.Interfaces", 11), CreateGacAssemblyName("Microsoft.VisualStudio.TextTemplating.Interfaces", 10) }; break; case VsVersions.Vs2013: _platformID = new PlatformID(FrameworkIdentifier.NetFramework, new Version(4, 5)); CSharpLanguageLevel = CSharpLanguageLevel.CSharp50; _textTemplatingAssemblyNames = new[] { CreateGacAssemblyName("Microsoft.VisualStudio.TextTemplating", 12), CreateGacAssemblyName("Microsoft.VisualStudio.TextTemplating.Interfaces", 11), CreateGacAssemblyName("Microsoft.VisualStudio.TextTemplating.Interfaces", 10) }; break; case VsVersions.Vs2015: _platformID = new PlatformID(FrameworkIdentifier.NetFramework, new Version(4, 5)); const int vs2015Update2Build = 25123; CSharpLanguageLevel = vsEnvironmentInformation.VsVersion4.Build >= vs2015Update2Build ? CSharpLanguageLevel.CSharp60 : CSharpLanguageLevel.CSharp50; _textTemplatingAssemblyNames = new[] { CreateGacAssemblyName("Microsoft.VisualStudio.TextTemplating", 14), CreateGacAssemblyName("Microsoft.VisualStudio.TextTemplating.Interfaces", 11), CreateGacAssemblyName("Microsoft.VisualStudio.TextTemplating.Interfaces", 10) }; break; case VsVersions.Vs2017: _platformID = new PlatformID(FrameworkIdentifier.NetFramework, new Version(4, 6)); CSharpLanguageLevel = CSharpLanguageLevel.CSharp70; _textTemplatingAssemblyNames = new[] { CreateDevEnvPublicAssemblyName(vsEnvironmentInformation, "Microsoft.VisualStudio.TextTemplating.15.0"), CreateDevEnvPublicAssemblyName(vsEnvironmentInformation, "Microsoft.VisualStudio.TextTemplating.Interfaces.11.0"), CreateDevEnvPublicAssemblyName(vsEnvironmentInformation, "Microsoft.VisualStudio.TextTemplating.Interfaces.10.0") }; break; default: _textTemplatingAssemblyNames = EmptyArray <string> .Instance; break; } if (_platformID != null) { _targetFrameworkId = TargetFrameworkId.Create(_platformID.FullName); } }
public HighlighterIdProviderFactory(IVsEnvironmentInformation vsEnvironment) => _vsMajorVersion = vsEnvironment.VsVersion2.Major;