123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /*---------------------------------------------------------------------------------------------
- * Copyright (c) Unity Technologies.
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Licensed under the MIT License. See License.txt in the project root for license information.
- *--------------------------------------------------------------------------------------------*/
-
- using System.Collections.Generic;
- using System.IO;
-
- namespace Microsoft.Unity.VisualStudio.Editor
- {
- internal static class Discovery
- {
- public static IEnumerable<IVisualStudioInstallation> GetVisualStudioInstallations()
- {
- #if UNITY_EDITOR_WIN
- foreach (var installation in VisualStudioForWindowsInstallation.GetVisualStudioInstallations())
- yield return installation;
- #elif UNITY_EDITOR_OSX
- foreach (var installation in VisualStudioForMacInstallation.GetVisualStudioInstallations())
- yield return installation;
- #endif
-
- foreach (var installation in VisualStudioCodeInstallation.GetVisualStudioInstallations())
- yield return installation;
- }
-
- public static bool TryDiscoverInstallation(string editorPath, out IVisualStudioInstallation installation)
- {
- try
- {
- #if UNITY_EDITOR_WIN
- if (VisualStudioForWindowsInstallation.TryDiscoverInstallation(editorPath, out installation))
- return true;
- #elif UNITY_EDITOR_OSX
- if (VisualStudioForMacInstallation.TryDiscoverInstallation(editorPath, out installation))
- return true;
- #endif
- if (VisualStudioCodeInstallation.TryDiscoverInstallation(editorPath, out installation))
- return true;
- }
- catch (IOException)
- {
- installation = null;
- }
-
- return false;
- }
-
- public static void Initialize()
- {
- #if UNITY_EDITOR_WIN
- VisualStudioForWindowsInstallation.Initialize();
- #elif UNITY_EDITOR_OSX
- VisualStudioForMacInstallation.Initialize();
- #endif
- VisualStudioCodeInstallation.Initialize();
- }
- }
- }
|