44using System ;
55using System . ComponentModel . Composition ;
66using System . Diagnostics ;
7- using System . Reflection ;
87using System . Runtime . InteropServices ;
98using System . Threading ;
109using System . Threading . Tasks ;
2221using Microsoft . VisualStudio ;
2322using Microsoft . VisualStudio . Shell ;
2423using Microsoft . VisualStudio . Shell . Interop ;
24+ using EnvDTE ;
2525using Octokit ;
2626using Serilog ;
2727using Task = System . Threading . Tasks . Task ;
@@ -282,8 +282,9 @@ async Task<object> CreateService(IAsyncServiceContainer container, CancellationT
282282 }
283283 else if ( serviceType == typeof ( IVSGitExt ) )
284284 {
285+ var dte = await GetServiceAsync ( typeof ( DTE ) ) as DTE ;
285286 var sp = await GetServiceAsync ( typeof ( IGitHubServiceProvider ) ) as IGitHubServiceProvider ;
286- return CreateVSGitExt ( sp ) ;
287+ return CreateVSGitExt ( dte . Version , sp ) ;
287288 }
288289 else if ( serviceType == typeof ( IGitHubToolWindowManager ) )
289290 {
@@ -297,15 +298,16 @@ async Task<object> CreateService(IAsyncServiceContainer container, CancellationT
297298 }
298299 }
299300
300- IVSGitExt CreateVSGitExt ( IGitHubServiceProvider sp )
301+ IVSGitExt CreateVSGitExt ( string dteVersion , IGitHubServiceProvider sp )
301302 {
302- switch ( VSVersion . Major )
303+ switch ( dteVersion )
303304 {
304- case 14 :
305+ case "14.0" :
305306 return new Lazy < IVSGitExt > ( ( ) => new VSGitExt14 ( sp ) ) . Value ;
306- case 15 :
307+ case "15.0" :
307308 return new Lazy < IVSGitExt > ( ( ) => new VSGitExt15 ( sp ) ) . Value ;
308309 default :
310+ log . Error ( "There is no IVSGitExt implementation for DTE version {Version}" , dteVersion ) ;
309311 return null ;
310312 }
311313 }
0 commit comments