@@ -23,16 +23,19 @@ public class CsProjClassicNetToolchain : Toolchain
2323 [ PublicAPI ] public static readonly IToolchain Net48 = new CsProjClassicNetToolchain ( "net48" , ".NET Framework 4.8" ) ;
2424 [ PublicAPI ] public static readonly IToolchain Net481 = new CsProjClassicNetToolchain ( "net481" , ".NET Framework 4.8.1" ) ;
2525
26- private CsProjClassicNetToolchain ( string targetFrameworkMoniker , string name , string packagesPath = null )
26+ internal string CustomDotNetCliPath { get ; }
27+
28+ private CsProjClassicNetToolchain ( string targetFrameworkMoniker , string name , string packagesPath = null , string customDotNetCliPath = null )
2729 : base ( name ,
28- new CsProjGenerator ( targetFrameworkMoniker , cliPath : null , packagesPath : packagesPath , runtimeFrameworkVersion : null , isNetCore : false ) ,
29- new DotNetCliBuilder ( targetFrameworkMoniker , customDotNetCliPath : null ) ,
30+ new CsProjGenerator ( targetFrameworkMoniker , customDotNetCliPath , packagesPath , runtimeFrameworkVersion : null , isNetCore : false ) ,
31+ new DotNetCliBuilder ( targetFrameworkMoniker , customDotNetCliPath ) ,
3032 new Executor ( ) )
3133 {
34+ CustomDotNetCliPath = customDotNetCliPath ;
3235 }
3336
34- public static IToolchain From ( string targetFrameworkMoniker , string packagesPath = null )
35- => new CsProjClassicNetToolchain ( targetFrameworkMoniker , targetFrameworkMoniker , packagesPath ) ;
37+ public static IToolchain From ( string targetFrameworkMoniker , string packagesPath = null , string customDotNetCliPath = null )
38+ => new CsProjClassicNetToolchain ( targetFrameworkMoniker , targetFrameworkMoniker , packagesPath , customDotNetCliPath ) ;
3639
3740 public override IEnumerable < ValidationError > Validate ( BenchmarkCase benchmarkCase , IResolver resolver )
3841 {
@@ -47,7 +50,7 @@ public override IEnumerable<ValidationError> Validate(BenchmarkCase benchmarkCas
4750 $ "Classic .NET toolchain is supported only for Windows, benchmark '{ benchmarkCase . DisplayInfo } ' will not be executed",
4851 benchmarkCase ) ;
4952 }
50- else if ( IsCliPathInvalid ( customDotNetCliPath : null , benchmarkCase , out var invalidCliError ) )
53+ else if ( IsCliPathInvalid ( CustomDotNetCliPath , benchmarkCase , out var invalidCliError ) )
5154 {
5255 yield return invalidCliError ;
5356 }
0 commit comments