3
3
using GitVersion . Extensions ;
4
4
using GitVersion . Logging ;
5
5
using GitVersion . MSBuildTask . Tasks ;
6
+ using Microsoft . Build . Utilities ;
6
7
using Microsoft . Extensions . DependencyInjection ;
7
8
using Microsoft . Extensions . Options ;
8
9
@@ -25,8 +26,6 @@ private static bool ExecuteGitVersionTask<T>(T task, Action<IGitVersionTaskExecu
25
26
try
26
27
{
27
28
var sp = BuildServiceProvider ( task ) ;
28
- var log = sp . GetService < ILog > ( ) ;
29
- log . AddLogAppender ( new MsBuildAppender ( taskLog ) ) ;
30
29
var gitVersionTaskExecutor = sp . GetService < IGitVersionTaskExecutor > ( ) ;
31
30
32
31
action ( gitVersionTaskExecutor ) ;
@@ -44,6 +43,17 @@ private static bool ExecuteGitVersionTask<T>(T task, Action<IGitVersionTaskExecu
44
43
45
44
return ! taskLog . HasLoggedErrors ;
46
45
}
46
+
47
+ private static void Configure ( IServiceProvider sp , Task task )
48
+ {
49
+ var log = sp . GetService < ILog > ( ) ;
50
+ var buildServerResolver = sp . GetService < IBuildServerResolver > ( ) ;
51
+ var arguments = sp . GetService < IOptions < Arguments > > ( ) . Value ;
52
+
53
+ log . AddLogAppender ( new MsBuildAppender ( task . Log ) ) ;
54
+ var buildServer = buildServerResolver . Resolve ( ) ;
55
+ arguments . NoFetch = arguments . NoFetch || buildServer != null && buildServer . PreventFetch ( ) ;
56
+ }
47
57
48
58
private static IServiceProvider BuildServiceProvider ( GitVersionTaskBase task )
49
59
{
@@ -61,6 +71,8 @@ private static IServiceProvider BuildServiceProvider(GitVersionTaskBase task)
61
71
services . AddModule ( new GitVersionCoreModule ( ) ) ;
62
72
63
73
var sp = services . BuildServiceProvider ( ) ;
74
+ Configure ( sp , task ) ;
75
+
64
76
return sp ;
65
77
}
66
78
}
0 commit comments