예제 #1
0
        void PackagingUpdate()
        {
            //check ended
            if (packageBuildInstance != null && packageBuildInstance.State != ProductBuildInstance.StateEnum.Building)
            {
                var instance2 = packageBuildInstance;
                packageBuildInstance = null;

                if (instance2.State == ProductBuildInstance.StateEnum.Error)
                {
                    EditorMessageBox.ShowWarning(instance2.Error);
                }
            }

            //update controls

            var building = packageBuildInstance != null && packageBuildInstance.State == ProductBuildInstance.StateEnum.Building;

            kryptonButtonPackageCreate.Enabled             = CanPackageProject();
            kryptonButtonPackageCreateAndRun.Enabled       = kryptonButtonPackageCreate.Enabled && GetSelectedBuildConfiguration() != null && GetSelectedBuildConfiguration().SupportsBuildAndRun;
            kryptonTextBoxPackageDestinationFolder.Enabled = !building;
            kryptonButtonPackageBrowse.Enabled             = !building;
            contentBrowserPackage.Enabled = !building;
            if (packageBuildInstance != null)
            {
                progressBarBuild.Value = (int)(packageBuildInstance.Progress * 100);
            }
            progressBarBuild.Visible         = building;
            kryptonButtonBuildCancel.Visible = building;
        }
예제 #2
0
        void PackageCreate(bool run)
        {
            string folder = kryptonTextBoxPackageDestinationFolder.Text.Trim();

            if (string.IsNullOrEmpty(folder))
            {
                return;
            }

            //clear destination folder
            if (Directory.Exists(folder) && !IOUtility.IsDirectoryEmpty(folder))
            {
                var text = string.Format(Translate("Destination folder \'{0}\' is not empty. Clear folder and continue?"), folder);
                if (EditorMessageBox.ShowQuestion(text, MessageBoxButtons.OKCancel) == DialogResult.Cancel)
                {
                    return;
                }

                //delete
                try
                {
                    DirectoryInfo info = new DirectoryInfo(folder);
                    foreach (FileInfo file in info.GetFiles())
                    {
                        file.Delete();
                    }
                    foreach (DirectoryInfo directory in info.GetDirectories())
                    {
                        directory.Delete(true);
                    }
                }
                catch (Exception e)
                {
                    EditorMessageBox.ShowWarning(e.Message);
                    return;
                }
            }

            //start
            try
            {
                if (!Directory.Exists(folder))
                {
                    Directory.CreateDirectory(folder);
                }

                packageBuildInstance = ProductBuildInstance.Start(GetSelectedBuildConfiguration(), folder, run);
            }
            catch (Exception e)
            {
                EditorMessageBox.ShowWarning(e.Message);
                return;
            }

            PackagingUpdate();
        }
예제 #3
0
        public static ProductBuildInstance Start(Component_Product configuration, string destinationFolder, bool run)
        {
            var instance = new ProductBuildInstance();

            instance.configuration     = configuration;
            instance.destinationFolder = destinationFolder;
            instance.run = run;

            instance.buildTask = new Task(BuildFunction, instance);
            instance.buildTask.Start();

            return(instance);

            //System.Threading.CancellationTokenSource deployCTS;
            //
            //deployCTS = new System.Threading.CancellationTokenSource();
            //var progress = new Progress<int>( p => deployProgressBarValue = p );
            //await Task.Run( () => deployment.Deploy( run, progress, deployCTS.Token ), deployCTS.Token );
            //
            //deployCTS.Cancel( false );
        }