/// <summary> /// Commits the lock file contained in <see cref="LockFile"/> and the MSBuild targets/props to /// the local file system. /// </summary> /// <remarks>If <see cref="PreviousLockFile"/> and <see cref="LockFile"/> are identical /// the file will not be written to disk.</remarks> /// <param name="forceWrite">Write out the lock file even if no changes exist.</param> public async Task CommitAsync(ILogger log, bool forceWrite, CancellationToken token) { // Write the lock file var lockFileFormat = new LockFileFormat(); await CommitAsync( lockFileFormat, result : this, log : log, forceWrite : forceWrite, toolCommit : false, token : token); foreach (var toolRestoreResult in ToolRestoreResults) { if (toolRestoreResult.LockFilePath != null && toolRestoreResult.LockFile != null) { await CommitAsync( lockFileFormat, result : toolRestoreResult, log : log, forceWrite : forceWrite, toolCommit : true, token : token); } } MSBuild.Commit(log); }