33using PostSharp . Engineering . BuildTools . Build . Files ;
44using PostSharp . Engineering . BuildTools . Dependencies . Model ;
55using System ;
6+ using System . Diagnostics . CodeAnalysis ;
67
78namespace PostSharp . Engineering . BuildTools . Build . Model
89{
@@ -24,7 +25,7 @@ internal BuildArguments( string? packageVersion, BuildConfiguration configuratio
2425 product . DependencyDefinition ,
2526 packagePreviewVersion ) { }
2627
27- internal BuildArguments (
28+ private BuildArguments (
2829 string ? packageVersion ,
2930 BuildConfiguration configuration ,
3031 DependencyDefinition dependencyDefinition ,
@@ -34,7 +35,7 @@ internal BuildArguments(
3435 dependencyDefinition . MSBuildConfiguration [ configuration ] ,
3536 packagePreviewVersion ) { }
3637
37- internal BuildArguments ( string ? packageVersion , string configuration , string msBuildConfiguration , string ? packagePreviewVersion )
38+ private BuildArguments ( string ? packageVersion , string configuration , string msBuildConfiguration , string ? packagePreviewVersion )
3839 {
3940 this . PackageVersion = packageVersion ;
4041 this . Configuration = configuration ;
@@ -55,7 +56,33 @@ internal BuildArguments( string? packageVersion, string configuration, string ms
5556
5657 public string ? PackagePreviewVersion { get ; init ; }
5758
58- public static BuildArguments Read ( BuildContext context , BuildConfiguration buildConfiguration )
59+ public static BuildArguments ReadFromArtifactManifest ( BuildContext context , BuildConfiguration buildConfiguration )
5960 => ArtifactManifestFile . CreateParametricStringArguments ( context , buildConfiguration ) ;
61+
62+ public static bool TryCreate ( BuildContext context , BuildConfiguration configuration , [ NotNullWhen ( true ) ] out BuildArguments ? buildArguments )
63+ {
64+ if ( ! MainVersionFile . TryRead ( context , out var mainVersionFile ) )
65+ {
66+ buildArguments = null ;
67+
68+ return false ;
69+ }
70+
71+ if ( ! AutoUpdatedVersionsFile . TryRead ( context , out var packageVersion , out var packageMainVersion ) )
72+ {
73+ buildArguments = null ;
74+
75+ return false ;
76+ }
77+
78+ buildArguments = new BuildArguments ( )
79+ {
80+ MSBuildConfiguration = context . Product . DependencyDefinition . MSBuildConfiguration [ configuration ] ,
81+ Configuration = configuration . ToString ( ) ,
82+ PackageVersion = packageVersion
83+ } ;
84+
85+ return true ;
86+ }
6087 }
6188}
0 commit comments