private static void RegenerateProjectFiles()

in src/dotnet/RiderPlugin.UnrealLink/PluginInstaller/UnrealProjectsRefresher.cs [67:105]


        private static void RegenerateProjectFiles(Lifetime lifetime, ISolution solution,
            UnrealHost unrealHost,
            VirtualFileSystemPath engineRoot, VirtualFileSystemPath uprojectFile)
        {
            void LogFailedRefreshProjectFiles()
            {
                unrealHost.myModel.RiderLinkInstallMessage(new InstallMessage(Strings.FailedToRefreshProjectFiles_Text,
                    ContentType.Normal));
                unrealHost.myModel.RiderLinkInstallMessage(
                    new InstallMessage(Strings.RiderLinkPluginWillNotBeVisibleInThe_Text, ContentType.Normal));
                unrealHost.myModel.RiderLinkInstallMessage(new InstallMessage(
                    Strings.NeedToRefreshProjectFilesManually_Text,
                    ContentType.Normal));
            }
            if (!engineRoot.IsValidAndExistDirectory())
            {
                OurLogger.Warn($"[UnrealLink]: Couldn't find Unreal Engine root");

                LogFailedRefreshProjectFiles();
                return;
            }

            if (PlatformUtil.RuntimePlatform != JetPlatform.Windows) return;

            var ueVersion = solution.GetComponent<ICppUE4SolutionDetector>().UnrealContext.Value.Version;
            var pathToUnrealBuildToolBin = CppUE4FolderFinder.GetAbsolutePathToUnrealBuildToolBin(engineRoot, ueVersion);

            // 1. If project is under engine root, use GenerateProjectFiles.{extension} first
            if (GenerateProjectFilesCmd(lifetime, solution, unrealHost, uprojectFile, engineRoot)) return;
            // 2. If it's a standalone project, use UnrealVersionSelector
            //    The same way "Generate project files" from context menu of .uproject works
            if (RegenerateProjectUsingBundledUVS(lifetime, unrealHost, uprojectFile, engineRoot)) return;
            if (RegenerateProjectUsingSystemUVS(lifetime, solution, unrealHost, uprojectFile)) return;
            // 3. If UVS is missing or have failed, fallback to UnrealBuildTool
            if (RegenerateProjectUsingUBT(lifetime, unrealHost, uprojectFile, pathToUnrealBuildToolBin, engineRoot)) return;

            OurLogger.Warn("[UnrealLink]: Couldn't refresh project files");
            LogFailedRefreshProjectFiles();
        }