Keine Beschreibung
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

PackageManagerTracker.cs 1.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System.IO;
  2. #if UNITY_2020_1_OR_NEWER
  3. using UnityEditor.PackageManager;
  4. #endif
  5. namespace Packages.Rider.Editor.ProjectGeneration
  6. {
  7. internal static class PackageManagerTracker
  8. {
  9. private static bool HasManifestJsonLastWriteTimeChanged()
  10. {
  11. if (!LastWriteTracker.IsUnityCompatible()) return false;
  12. var directoryInfo = new DirectoryInfo(Directory.GetCurrentDirectory());
  13. var manifestFile = new FileInfo(Path.Combine(directoryInfo.FullName, "Packages/manifest.json"));
  14. if (manifestFile.Exists)
  15. {
  16. // for the manifest.json, we store the LastWriteTime here
  17. var res = manifestFile.LastWriteTime > RiderScriptEditorPersistedState.instance.ManifestJsonLastWrite;
  18. if (res) RiderScriptEditorPersistedState.instance.ManifestJsonLastWrite = manifestFile.LastWriteTime;
  19. return res;
  20. }
  21. return false;
  22. }
  23. /// <summary>
  24. /// If the manifest.json was changed outside Unity and Rider calls Unity to Refresh, we should call PM to Refresh its state also
  25. /// </summary>
  26. /// <param name="checkProjectFiles"></param>
  27. internal static void SyncIfNeeded(bool checkProjectFiles)
  28. {
  29. #if UNITY_2020_1_OR_NEWER
  30. if (checkProjectFiles && HasManifestJsonLastWriteTimeChanged())
  31. {
  32. Client.Resolve();
  33. }
  34. #endif
  35. }
  36. }
  37. }