ReplaceInFile.cs 831 B

123456789101112131415161718192021222324252627282930313233
  1. // Copyright (c) .NET Foundation. All rights reserved.
  2. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
  3. using System.IO;
  4. using System.Linq;
  5. using Microsoft.Build.Framework;
  6. using Microsoft.Build.Utilities;
  7. namespace RepoTasks
  8. {
  9. public class ReplaceInFile : Task
  10. {
  11. [Required]
  12. public string Filename { get; set; }
  13. [Required]
  14. public ITaskItem[] Items { get; set; }
  15. public override bool Execute()
  16. {
  17. var fileText = File.ReadAllText(Filename);
  18. foreach (var item in Items)
  19. {
  20. fileText = fileText.Replace(item.ItemSpec, item.GetMetadata("Replacement"));
  21. }
  22. File.WriteAllText(Filename, fileText);
  23. return true;
  24. }
  25. }
  26. }