Beispiel #1
0
        /// <summary>
        /// When the program is started
        /// </summary>
        private async void MainForm_Load(object sender, EventArgs e)
        {
            // set the course save path.
            SavePathTextBox.Text = Path.Combine(Application.StartupPath, "课程下载");

            // Check if there is a new version.
            var currentVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
            var update         = new VersionUpdate();

            try
            {
                var newVersionInfo = await update.GetNewVersionAsync();

                var version = Version.Parse(newVersionInfo.Version);

                if (version > currentVersion)
                {
                    /**
                     * exist new version.
                     *
                     * https://docs.microsoft.com/en-us/dotnet/standard/assembly/versioning
                     * <主版本>.<次版本>.<生成号>.<修订版本>
                     * <major version>.<minor version>.<build number>.<revision>
                     */
                    var form = new VersionForm(newVersionInfo);

                    form.ShowDialog();
                }
            }
            catch (Exception)
            {
                Log("检测升级失败.");
            }
        }
Beispiel #2
0
 private static void AskAndProcessUpdate(VersionUpdate updateResult)
 {
     if (MessageBox.Show(
             "There is an update available for 'Local nuget manager' extension !" + Environment.NewLine +
             "Do you want to download it now ?", "Yeah, new shiny stuff !", MessageBoxButtons.YesNo) ==
         DialogResult.Yes)
     {
         Update(updateResult);
     }
 }
 private void mainWindow_Loaded(object sender, RoutedEventArgs e)
 {
     buttonUpdate.Visibility = Visibility.Collapsed;
     Task.Run(() => {
         bool canUpdate = VersionUpdate.HasUpdate();
         if (canUpdate)
         {
             this.Dispatcher.Invoke(() => { buttonUpdate.Visibility = Visibility.Visible; });
         }
     });
 }
Beispiel #4
0
        public void RestartVersionUpdate()
        {
            Transform     versionUpdate = transform.Find("VersionUpdate");
            VersionUpdate comp          = versionUpdate.GetComponent <VersionUpdate>();

            if (comp != null)
            {
                Destroy(comp);
            }

            versionUpdate.gameObject.SetActive(true);
            versionUpdate.gameObject.AddComponent <VersionUpdate>();
        }
        public async Task <IHttpActionResult> Add([FromBody] VersionUpdate versionUpdate)
        {
            versionUpdate.ModifyTime = DateTime.Now;
            versionUpdate.CreateTime = DateTime.Now;

            var data = ModelContext.DatabaseContext.VersionUpdate.Add(versionUpdate);
            await ModelContext.DatabaseContext.SaveChangesAsync();

            ResponseData <VersionUpdate> result = new ResponseData <VersionUpdate>
            {
                Data = data
            };

            return(Json(result));
        }
            //Methods
            public void IncreaseVersion(VersionUpdate versionUpdate)
            {
                switch (versionUpdate)
                {
                case VersionUpdate.Major:
                    Major += 1;
                    break;

                case VersionUpdate.Minor:
                    Minor += 1;
                    break;

                default:
                case VersionUpdate.Change:
                    Change += 1;
                    break;
                }
            }
Beispiel #7
0
        private static bool Update(VersionUpdate updateResult)
        {
            if (!updateResult.IsUpdateAvailable)
            {
                return(false);
            }

            var remoteVsix = updateResult.IsBeta
                ? Settings.Default.RemoteVsixPath_Beta
                : Settings.Default.RemoteVsixPath;

            if (!File.Exists(remoteVsix))
            {
                return(false);
            }

            Process.Start(remoteVsix);

            return(true);
        }
Beispiel #8
0
    void Start()
    {
        PathUtils.Init();
        LogUtils.Init(PathUtils.GetPersistentPath());

        LogUtils.Log("main start!");

        CoroutineTaskMgr mgr = gameObject.GetComponent <CoroutineTaskMgr>();

        if (mgr == null)
        {
            mgr = gameObject.AddComponent <CoroutineTaskMgr>();
        }
        LoopUpdateMgr looper = gameObject.GetComponent <LoopUpdateMgr>();

        if (looper == null)
        {
            looper = gameObject.AddComponent <LoopUpdateMgr>();
        }
        LoopUpdateMgr.GetInst().Init();
        CoroutineTaskMgr.GetInst().Init();
        VersionUpdate.GetIns().Init();
        VersionUpdate.GetIns().StartStatus(VesionUpdateStatus.Game);
    }
        public async Task <IHttpActionResult> Update([FromBody] VersionUpdate versionUpdate)
        {
            var query = from a in ModelContext.DatabaseContext.VersionUpdate
                        where a.Id == versionUpdate.Id
                        select a;

            var data = query.FirstOrDefault();

            var responseData = new ResponseData <VersionUpdate>()
            {
                Message = data == null ? "未找到该更新信息" : "",
                Data    = data
            };

            if (data != null)
            {
                ReflectionHelper.CopyProperties(versionUpdate, data, new string[] { "Id" });
                data.ModifyTime = DateTime.Now;
                ModelContext.DatabaseContext.Entry(data).State = System.Data.Entity.EntityState.Modified;
                await ModelContext.DatabaseContext.SaveChangesAsync();
            }

            return(Json(responseData));
        }
Beispiel #10
0
 void Update()
 {
     VersionUpdate.GetIns().Update();
     LogUtils.Update();
 }
Beispiel #11
0
        private static async void AsyncCheckVersion(int retry = 0)
        {
            var http = new HttpClient
            {
                BaseAddress = new Uri(versionURI)
            };

            var json          = JsonSerializer.Create();
            var cachedVersion = GetCachedVersion(out var notify);
            var req           = string.Empty;

            try
            {
                req = await http.GetStringAsync(string.Empty);
            }
            catch (HttpRequestException e)
            {
                Console.WriteLine("[Updater] Failed to get current version. Caused by");
                Console.WriteLine(e.ToString());
                if (retry < netRetryCount)
                {
                    AsyncCheckVersion(retry + 1);
                    return;
                }
            }

            VersionUpdate update = new VersionUpdate();

            try
            {
                using (JsonTextReader jsonReader = new JsonTextReader(new StringReader(req)))
                {
                    update = json.Deserialize <VersionUpdate>(jsonReader);
                }
            }
            catch (Exception)
            {
                Console.WriteLine("Failed to read current version info.");
                return;
            }


            var currentVer   = Version.Parse(update.Version);
            var cacheValidTo = DateTime.UtcNow + update.CacheDuration;

            if (currentVer == null || cachedVersion >= currentVer)
            {
                currentVer = cachedVersion;
            }

            if (currentVer > LauncherVersion)
            {
                var args = new VersionUpdateEventArgs(update);
                NewVersion?.Invoke(null, args);

                if (notify)
                {
                    NotifyNewVersion?.Invoke(null, args);
                    notify = false;
                }
            }

            WriteVersionCache(notify, currentVer, cacheValidTo);
        }
Beispiel #12
0
 public VersionUpdateEventArgs(VersionUpdate version)
 {
     Version = version;
 }
        public static void PerformBuild(List <EditorBuildSettingsScene> buildScenes, string company, string productName, List <BuildTargetDef> buildTargets, VersionUpdate versionUpdate, bool forceVersion, Vector3Int forcedVersion, bool devBuild, bool connectProfiler, bool allowDebugging, bool headless, string bundleID)
        {
            CheckBuildTargetsForDuplicatesAndOnlyOneAutoRun(buildTargets);

            if (buildTargets.Count == 0)
            {
                return;
            }

            AddAutoIncludedScenes(buildScenes, AssetTools.FindAssetsByType <SceneAsset>(log: false, null));

            BuildOptions options = BuildOptions.None;

            if (devBuild)
            {
                options |= BuildOptions.Development;
            }
            if (allowDebugging)
            {
                options |= BuildOptions.AllowDebugging;
            }
            if (headless)
            {
                options |= BuildOptions.EnableHeadlessMode;
            }
            if (connectProfiler)
            {
                options |= BuildOptions.ConnectWithProfiler;
            }

            // Save current player settings, and then set target settings.
            string preBuildCompanyName = PlayerSettings.companyName;
            string preBuildProductName = PlayerSettings.productName;
            string oldVersion          = PlayerSettings.bundleVersion;

            EditorBuildSettingsScene[] scenes = CheckForNullsAndDuplicateScenes(buildScenes);

            Vector3Int version;

            if (forceVersion)
            {
                version = forcedVersion;
            }
            else
            {
                GetLatestVersion(out version);
                switch (versionUpdate)
                {
                case VersionUpdate.Major: version.x++; break;

                case VersionUpdate.Minor: version.y++; break;

                case VersionUpdate.Patch: version.z++; break;
                }
            }

            string versionS = version.x.ToString() + "." + version.y.ToString() + "." + version.z.ToString();

            string versionDir = GenerateVersionDirectory(versionS);

            PlayerSettings.companyName   = company;
            PlayerSettings.productName   = productName;
            PlayerSettings.bundleVersion = versionS;

            int successCount = 0;
            int failCount    = 0;

            for (int i = 0; i < buildTargets.Count; i++)
            {
                bool success = BuildPlayer(scenes, options, versionDir, productName, buildTargets[i].buildTarget, buildTargets[i].autoRun, buildTargets[i].customDefines, bundleID);

                if (success)
                {
                    ++successCount;
                }
                else
                {
                    ++failCount;
                }
            }

            //restore old player settings
            PlayerSettings.companyName   = preBuildCompanyName;
            PlayerSettings.productName   = preBuildProductName;
            PlayerSettings.bundleVersion = oldVersion;

            // Report success/failure.
            Debug.Log("Build Complete. " + string.Format("{0} success. {1} failure.", successCount, failCount));

            System.Diagnostics.Process.Start(versionDir);
        }
 public static void PerformBuild(List <EditorBuildSettingsScene> buildScenes, string company, string productName, List <BuildTargetDef> buildTargets, VersionUpdate versionUpdate, bool devBuild, bool connectProfiler, bool allowDebugging, bool headless, string bundleID = null)
 {
     PerformBuild(buildScenes, company, productName, buildTargets, versionUpdate, false, Vector3Int.zero, devBuild, connectProfiler, allowDebugging, headless, bundleID);
 }