@@ -33,40 +33,41 @@ public ProjectFileUpdater(ILog log, IFileSystem fileSystem)
33
33
public void Execute ( VersionVariables variables , AssemblyInfoContext context )
34
34
{
35
35
if ( context . EnsureAssemblyInfo )
36
- throw new WarningException ( $ "Configuration setting { nameof ( context . EnsureAssemblyInfo ) } is not valid when updating .csproj files!") ;
36
+ throw new WarningException ( $ "Configuration setting { nameof ( context . EnsureAssemblyInfo ) } is not valid when updating project files!") ;
37
37
38
- var csProjFilesToUpdate = GetCsProjFiles ( context ) . ToList ( ) ;
38
+ var projectFilesToUpdate = GetProjectFiles ( context ) . ToList ( ) ;
39
39
40
40
var assemblyVersion = variables . AssemblySemVer ;
41
41
var assemblyInfoVersion = variables . InformationalVersion ;
42
42
var assemblyFileVersion = variables . AssemblySemFileVer ;
43
43
44
- foreach ( var csProjFile in csProjFilesToUpdate )
44
+ foreach ( var projectFile in projectFilesToUpdate )
45
45
{
46
- var localCsProjFile = csProjFile . FullName ;
46
+ var localProjectFile = projectFile . FullName ;
47
47
48
- var originalFileContents = fileSystem . ReadAllText ( localCsProjFile ) ;
48
+ var originalFileContents = fileSystem . ReadAllText ( localProjectFile ) ;
49
49
var fileXml = XElement . Parse ( originalFileContents ) ;
50
50
51
51
if ( ! CanUpdateProjectFile ( fileXml ) )
52
52
{
53
+ log . Warning ( $ "Unable to update file: { localProjectFile } ") ;
53
54
continue ;
54
55
}
55
56
56
- var backupCsProjFile = localCsProjFile + ".bak" ;
57
- fileSystem . Copy ( localCsProjFile , backupCsProjFile , true ) ;
57
+ var backupProjectFile = localProjectFile + ".bak" ;
58
+ fileSystem . Copy ( localProjectFile , backupProjectFile , true ) ;
58
59
59
60
restoreBackupTasks . Add ( ( ) =>
60
61
{
61
- if ( fileSystem . Exists ( localCsProjFile ) )
62
+ if ( fileSystem . Exists ( localProjectFile ) )
62
63
{
63
- fileSystem . Delete ( localCsProjFile ) ;
64
+ fileSystem . Delete ( localProjectFile ) ;
64
65
}
65
66
66
- fileSystem . Move ( backupCsProjFile , localCsProjFile ) ;
67
+ fileSystem . Move ( backupProjectFile , localProjectFile ) ;
67
68
} ) ;
68
69
69
- cleanupBackupTasks . Add ( ( ) => fileSystem . Delete ( backupCsProjFile ) ) ;
70
+ cleanupBackupTasks . Add ( ( ) => fileSystem . Delete ( backupProjectFile ) ) ;
70
71
71
72
if ( ! string . IsNullOrWhiteSpace ( assemblyVersion ) )
72
73
{
@@ -86,49 +87,49 @@ public void Execute(VersionVariables variables, AssemblyInfoContext context)
86
87
var outputXmlString = fileXml . ToString ( ) ;
87
88
if ( originalFileContents != outputXmlString )
88
89
{
89
- fileSystem . WriteAllText ( localCsProjFile , outputXmlString ) ;
90
+ fileSystem . WriteAllText ( localProjectFile , outputXmlString ) ;
90
91
}
91
92
}
92
93
93
94
CommitChanges ( ) ;
94
95
}
95
96
96
- internal bool CanUpdateProjectFile ( XElement csProjRoot )
97
+ internal bool CanUpdateProjectFile ( XElement xmlRoot )
97
98
{
98
- if ( csProjRoot . Name != "Project" )
99
+ if ( xmlRoot . Name != "Project" )
99
100
{
100
- log . Warning ( $ "Invalid project file specified, root element must be <Project> -- skipping ") ;
101
+ log . Warning ( $ "Invalid project file specified, root element must be <Project>. ") ;
101
102
return false ;
102
103
}
103
104
104
105
var supportedSdk = "Microsoft.NET.Sdk" ;
105
- var sdkAttribute = csProjRoot . Attribute ( "Sdk" ) ;
106
+ var sdkAttribute = xmlRoot . Attribute ( "Sdk" ) ;
106
107
if ( sdkAttribute == null || sdkAttribute . Value != supportedSdk )
107
108
{
108
- log . Warning ( $ "Specified project file Sdk ({ sdkAttribute ? . Value } is not supported, please ensure the project sdk is { supportedSdk } -- skipping ") ;
109
+ log . Warning ( $ "Specified project file Sdk ({ sdkAttribute ? . Value } ) is not supported, please ensure the project sdk is { supportedSdk } . ") ;
109
110
return false ;
110
111
}
111
112
112
- var propertyGroups = csProjRoot . Descendants ( "PropertyGroup" ) . ToList ( ) ;
113
+ var propertyGroups = xmlRoot . Descendants ( "PropertyGroup" ) . ToList ( ) ;
113
114
if ( ! propertyGroups . Any ( ) )
114
115
{
115
- log . Warning ( "Unable to locate any <PropertyGroup> elements in specified project file. Are you sure it is in a correct format? -- skipping " ) ;
116
+ log . Warning ( "Unable to locate any <PropertyGroup> elements in specified project file. Are you sure it is in a correct format?" ) ;
116
117
return false ;
117
118
}
118
119
119
120
var lastGenerateAssemblyInfoElement = propertyGroups . SelectMany ( s => s . Elements ( "GenerateAssemblyInfo" ) ) . LastOrDefault ( ) ;
120
121
if ( lastGenerateAssemblyInfoElement != null && ( bool ) lastGenerateAssemblyInfoElement == false )
121
122
{
122
- log . Warning ( $ "Project file specifies <GenerateAssemblyInfo>false</GenerateAssemblyInfo>: versions set in this project file will not affect the output artifacts -- skipping ") ;
123
+ log . Warning ( $ "Project file specifies <GenerateAssemblyInfo>false</GenerateAssemblyInfo>: versions set in this project file will not affect the output artifacts. ") ;
123
124
return false ;
124
125
}
125
126
126
127
return true ;
127
128
}
128
129
129
- internal void UpdateProjectVersionElement ( XElement csProjRoot , string versionElement , string versionValue )
130
+ internal void UpdateProjectVersionElement ( XElement xmlRoot , string versionElement , string versionValue )
130
131
{
131
- var propertyGroups = csProjRoot . Descendants ( "PropertyGroup" ) . ToList ( ) ;
132
+ var propertyGroups = xmlRoot . Descendants ( "PropertyGroup" ) . ToList ( ) ;
132
133
133
134
var propertyGroupToModify = propertyGroups . LastOrDefault ( l => l . Element ( versionElement ) != null )
134
135
?? propertyGroups . First ( ) ;
@@ -166,7 +167,7 @@ private void CommitChanges()
166
167
restoreBackupTasks . Clear ( ) ;
167
168
}
168
169
169
- private IEnumerable < FileInfo > GetCsProjFiles ( AssemblyInfoContext context )
170
+ private IEnumerable < FileInfo > GetProjectFiles ( AssemblyInfoContext context )
170
171
{
171
172
var workingDirectory = context . WorkingDirectory ;
172
173
var assemblyInfoFileNames = new HashSet < string > ( context . AssemblyInfoFiles ) ;
0 commit comments