You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1.6KB

  1. using Microsoft.Build.Evaluation;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace SIE.VSDK.Extensions
  9. {
  10. public static class DirectoryInfoExtensions
  11. {
  12. public static void DeepCopy(this DirectoryInfo directory, string destinationDir)
  13. {
  14. foreach (string dir in Directory.GetDirectories(directory.FullName, "*", SearchOption.AllDirectories))
  15. {
  16. string dirToCreate = dir.Replace(directory.FullName, destinationDir);
  17. Directory.CreateDirectory(dirToCreate);
  18. }
  19. foreach (string newPath in Directory.GetFiles(directory.FullName, "*.*", SearchOption.AllDirectories))
  20. {
  21. File.Copy(newPath, newPath.Replace(directory.FullName, destinationDir), true);
  22. }
  23. }
  24. public static List<string> GetCsProjFiles(this DirectoryInfo directory)
  25. {
  26. List<string> listCsProj = new List<string>();
  27. foreach (string newPath in Directory.GetFiles(directory.FullName, "*.csproj", SearchOption.AllDirectories))
  28. {
  29. ProjectCollection pc = new ProjectCollection();
  30. Project project = pc.LoadProject(newPath, null);
  31. var properties = project.Properties;
  32. foreach (var property in properties)
  33. {
  34. string result = $"Property: \"{property.Name}\" Value: {property.UnevaluatedValue}";
  35. }
  36. listCsProj.Add(newPath);
  37. }
  38. return listCsProj;
  39. }
  40. }
  41. }