@@ -182,7 +182,7 @@ private async Task DownloadAsync(IExecutionContext executionContext, Pipelines.T
182
182
return ;
183
183
}
184
184
185
- String taskZipPath = Path . Combine ( HostContext . GetDirectory ( WellKnownDirectory . TaskZips ) , $ "{ task . Name } _{ task . Id } _{ task . Version } .zip") ;
185
+ String taskZipPath = Path . Combine ( HostContext . GetDirectory ( WellKnownDirectory . TaskZips ) , $ "{ task . Name } _{ task . Id } _{ NormalizeTaskVersion ( task ) } .zip") ;
186
186
if ( alwaysExtractTask && File . Exists ( taskZipPath ) )
187
187
{
188
188
executionContext . Debug ( $ "Task '{ task . Name } ' already downloaded at '{ taskZipPath } '.") ;
@@ -472,7 +472,13 @@ private string GetDirectory(Pipelines.TaskStepDefinitionReference task)
472
472
return Path . Combine (
473
473
HostContext . GetDirectory ( WellKnownDirectory . Tasks ) ,
474
474
$ "{ task . Name } _{ task . Id } ",
475
- task . Version ) ;
475
+ NormalizeTaskVersion ( task ) ) ;
476
+ }
477
+
478
+ private string NormalizeTaskVersion ( Pipelines . TaskStepDefinitionReference task )
479
+ {
480
+ ArgUtil . NotNullOrEmpty ( task . Version , nameof ( task . Version ) ) ;
481
+ return task . Version . Replace ( "+" , "_" ) ;
476
482
}
477
483
478
484
private string GetTaskZipPath ( Pipelines . TaskStepDefinitionReference task )
@@ -482,7 +488,7 @@ private string GetTaskZipPath(Pipelines.TaskStepDefinitionReference task)
482
488
ArgUtil . NotNullOrEmpty ( task . Version , nameof ( task . Version ) ) ;
483
489
return Path . Combine (
484
490
HostContext . GetDirectory ( WellKnownDirectory . TaskZips ) ,
485
- $ "{ task . Name } _{ task . Id } _{ task . Version } .zip") ; // TODO: Move to shared string.
491
+ $ "{ task . Name } _{ task . Id } _{ NormalizeTaskVersion ( task ) } .zip") ; // TODO: Move to shared string.
486
492
}
487
493
488
494
private Definition GetTaskDefiniton ( Pipelines . TaskStep task )
0 commit comments