暂无描述
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

Discovery.cs 1.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /*---------------------------------------------------------------------------------------------
  2. * Copyright (c) Unity Technologies.
  3. * Copyright (c) Microsoft Corporation. All rights reserved.
  4. * Licensed under the MIT License. See License.txt in the project root for license information.
  5. *--------------------------------------------------------------------------------------------*/
  6. using System.Collections.Generic;
  7. using System.IO;
  8. namespace Microsoft.Unity.VisualStudio.Editor
  9. {
  10. internal static class Discovery
  11. {
  12. public static IEnumerable<IVisualStudioInstallation> GetVisualStudioInstallations()
  13. {
  14. #if UNITY_EDITOR_WIN
  15. foreach (var installation in VisualStudioForWindowsInstallation.GetVisualStudioInstallations())
  16. yield return installation;
  17. #elif UNITY_EDITOR_OSX
  18. foreach (var installation in VisualStudioForMacInstallation.GetVisualStudioInstallations())
  19. yield return installation;
  20. #endif
  21. foreach (var installation in VisualStudioCodeInstallation.GetVisualStudioInstallations())
  22. yield return installation;
  23. }
  24. public static bool TryDiscoverInstallation(string editorPath, out IVisualStudioInstallation installation)
  25. {
  26. try
  27. {
  28. #if UNITY_EDITOR_WIN
  29. if (VisualStudioForWindowsInstallation.TryDiscoverInstallation(editorPath, out installation))
  30. return true;
  31. #elif UNITY_EDITOR_OSX
  32. if (VisualStudioForMacInstallation.TryDiscoverInstallation(editorPath, out installation))
  33. return true;
  34. #endif
  35. if (VisualStudioCodeInstallation.TryDiscoverInstallation(editorPath, out installation))
  36. return true;
  37. }
  38. catch (IOException)
  39. {
  40. installation = null;
  41. }
  42. return false;
  43. }
  44. public static void Initialize()
  45. {
  46. #if UNITY_EDITOR_WIN
  47. VisualStudioForWindowsInstallation.Initialize();
  48. #elif UNITY_EDITOR_OSX
  49. VisualStudioForMacInstallation.Initialize();
  50. #endif
  51. VisualStudioCodeInstallation.Initialize();
  52. }
  53. }
  54. }