コード例 #1
0
 protected override void BuilderFailed(AuProject project, Exception exception, UpdateInfo resultUpdateInfo)
 {
     Console.ForegroundColor = ConsoleColor.Red;
     Console.WriteLine("更新项目构建失败:" + exception.Message);
     Console.ResetColor();
     base.BuilderFailed(project, exception, resultUpdateInfo);
 }
コード例 #2
0
        /// <summary>
        /// 重新绑定数据
        /// </summary>
        /// <param name="project"></param>
        void RebindDefaultUpdateMethodInfo(AuProject project)
        {
            switch (project.DefaultUpdateMethod)
            {
            case UpdateMethod.Always:
                rbAlways.Checked = true;
                break;

            case UpdateMethod.VersionCompare:
                rbVersionCheck.Checked = true;
                break;

            case UpdateMethod.SkipIfExists:
                rbOnlyNotExist.Checked = true;
                break;

            case UpdateMethod.Ignore:
                rbIgnore.Checked = true;
                break;

            default:
                break;
            }
            lblCheckTypeDesc.Text = project.DefaultUpdateMethod == UpdateMethod.VersionCompare ? project.DefaultFileVerificationLevel.ToDisplayString() : "点击选项时选择比较类型";
        }
コード例 #3
0
        void BindProject(AuProject project)
        {
            var ui = project.UpdateInfo;

            _project = project;
            chkUseIncreaseUpdate.AddDataBinding(project, s => s.Checked, s => s.EnableIncreaseUpdate);
            chkCompressUpdateInfo.AddDataBinding(project, s => s.Checked, s => s.CompressPackage);
            chkCreateCompatiblePackage.AddDataBinding(project, s => s.Checked, s => s.CreateCompatiblePackage);
            chkAutoCloseSucceed.AddDataBinding(ui, s => s.Checked, s => s.AutoCloseSucceedWindow);
            chkAutoCloseFailed.AddDataBinding(ui, s => s.Checked, s => s.AutoCloseFailedDialog);
            nudTimeoutFailed.Value  = ui.AutoCloseFailedTimeout;
            nudTimeoutSucceed.Value = ui.AutoCloseSucceedTimeout;


            this.deletePreviousFileMode.SelectedIndex = (int)ui.DeleteMethod;
            this.deleteRules.Text = ui.DeleteFileLimits.IsEmpty() ? "" : string.Join(Environment.NewLine, ui.DeleteFileLimits);

            txtPackagePassword.AddDataBinding(ui, s => s.Text, s => s.PackagePassword);
            requiredMinVersion.AddDataBinding(ui, s => s.Text, s => s.RequiredMinVersion);
            project.PropertyChanged += (s, e) =>
            {
                if (e.PropertyName == "DefaultUpdateMethod" || e.PropertyName == "DefaultFileVerificationLevel")
                {
                    RebindDefaultUpdateMethodInfo(s as AuProject);
                }
            };

            RebindDefaultUpdateMethodInfo(project);
        }
コード例 #4
0
		protected override void BuilderFailed(AuProject project, Exception exception, UpdateInfo resultUpdateInfo)
		{
			Console.ForegroundColor = ConsoleColor.Red;
			Console.WriteLine("更新项目构建失败:" + exception.Message);
			Console.ResetColor();
			base.BuilderFailed(project, exception, resultUpdateInfo);
		}
コード例 #5
0
        /// <summary>
        /// 打开
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void btnOpen_Click(object sender, EventArgs e)
        {
            var open = new OpenFileDialog()
            {
                Title  = "打开升级信息文件",
                Filter = "XML信息文件(*.xml)|*.xml"
            };

            if (open.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            var file = open.FileName;

            var project = AuProject.LoadFromOldProject(file);

            if (project != null)
            {
                UpdatePackageBuilder.Instance.AuProject = project;
            }
            else
            {
                Information("无法打开指定的文件 " + file + " !");
            }
        }
コード例 #6
0
        /// <summary>
        /// 构建项目
        /// </summary>
        /// <param name="filepath"></param>
        public virtual void Build(string filepath)
        {
            var builder = Builder;
            var project = AuProject.LoadFile(filepath);

            if (project == null)
            {
                BuilderFailed(null, new ApplicationException(SR.UnableOpenProject), null);
                return;
            }

            builder.AuProject = project;
            Project           = project;

            var bgw = new BackgroundWorker();

            bgw.DoWork                 += (s, e) => builder.Build(e);
            bgw.WorkFailed             += (s, e) => BuilderFailed(project, e.Exception, builder.BuiltUpdateInfo);
            bgw.WorkCompleted          += (s, e) => BuildSuccess(project, builder.Result, builder.BuiltUpdateInfo);
            bgw.WorkerProgressChanged  += (s, e) => UpdateProgress(e.Progress);
            builder.FilePackagingBegin += (sender, args) => {
                ZipTasks = builder.AllPackageBuildTasks;
                OnFilePackingBegin();
            };
            builder.FilePackagingEnd += (sender, args) => OnFilePackingEnd();

            OnWorkerInitialized();
            bgw.RunWorkASync();
        }
コード例 #7
0
        /// <summary>
        /// 重新绑定数据
        /// </summary>
        /// <param name="project"></param>
        void RebindDefaultUpdateMethodInfo(AuProject project)
        {
            rbAlways.Checked          = Utility.HasMethod(project.DefaultUpdateMethod, UpdateMethod.Always);
            rbVersionCheck.Checked    = Utility.HasMethod(project.DefaultUpdateMethod, UpdateMethod.VersionCompare);
            rbOnlyNotExist.Checked    = Utility.HasMethod(project.DefaultUpdateMethod, UpdateMethod.SkipIfExists);
            rbIgnore.Checked          = Utility.HasMethod(project.DefaultUpdateMethod, UpdateMethod.Ignore);
            chkSkipIfNotExist.Checked = Utility.HasMethod(project.DefaultUpdateMethod, UpdateMethod.SkipIfNotExist);

            lblCheckTypeDesc.Text = Utility.HasMethod(project.DefaultUpdateMethod, UpdateMethod.VersionCompare) ? project.DefaultFileVerificationLevel.ToDisplayString() : "点击选项时选择比较类型";
        }
コード例 #8
0
		void BindProject(AuProject project)
		{
			Root = project.ParseFullPath(project.DestinationDirectory);
			project.PropertyChanged += (s, ee) =>
			{
				if (ee.PropertyName == "ApplicationDirectory")
					Root = project.ParseFullPath(project.ApplicationDirectory);
			};
			Root = project.ParseFullPath(project.ApplicationDirectory);
		}
コード例 #9
0
 void upb_ProjectClosed(object sender, PackageEventArgs e)
 {
     chkUseIncreaseUpdate.DataBindings.Clear();
     chkCreateCompatiblePackage.DataBindings.Clear();
     chkCompressUpdateInfo.DataBindings.Clear();
     txtPackagePassword.DataBindings.Clear();
     requiredMinVersion.DataBindings.Clear();
     chkAutoCloseSucceed.DataBindings.Clear();
     chkAutoCloseFailed.DataBindings.Clear();
     _project = null;
 }
コード例 #10
0
 void BindProject(AuProject project)
 {
     Root = project.ParseFullPath(project.DestinationDirectory);
     project.PropertyChanged += (s, ee) =>
     {
         if (ee.PropertyName == "ApplicationDirectory")
         {
             Root = project.ParseFullPath(project.ApplicationDirectory);
         }
     };
     Root = project.ParseFullPath(project.ApplicationDirectory);
 }
コード例 #11
0
        void OpenProject(string path)
        {
            var project = AuProject.LoadFile(path);

            if (project == null)
            {
                Information("打开项目时出错!");
                return;
            }

            UpdatePackageBuilder.Instance.AuProject = project;
        }
コード例 #12
0
        /// <summary>
        /// 清理目标目录
        /// </summary>
        void CleanTargetDirectory()
        {
            var directory = AuProject.ParseFullPath(AuProject.DestinationDirectory);

            //删除 update*.xml
            foreach (var file in Directory.GetFiles(directory, "update*.xml"))
            {
                File.Delete(file);
            }
            //删除package
            foreach (var file in Directory.GetFiles(directory, "*." + AuProject.PackageExtension))
            {
                File.Delete(file);
            }
        }
コード例 #13
0
		protected override void BuildSuccess(AuProject project, Dictionary<string, string> packages, UpdateInfo resultUpdateInfo)
		{
			Console.ForegroundColor = ConsoleColor.Green;
			Console.WriteLine("更新项目构建成功");
			Console.WriteLine("===============================");

			Console.ForegroundColor = ConsoleColor.Yellow;
			var index = 0;
			foreach (var package in packages)
			{
				Console.WriteLine("[{0:#0000}] {1}		{2}", ++index, package.Key, package.Value);
			}

			Console.ForegroundColor = ConsoleColor.Green;
			Console.WriteLine("===============================");
			Console.WriteLine("已构建 {0} 个包。", packages.Count);
			Console.ResetColor();

			base.BuildSuccess(project, packages, resultUpdateInfo);
		}
コード例 #14
0
        protected override void BuildSuccess(AuProject project, Dictionary <string, string> packages, UpdateInfo resultUpdateInfo)
        {
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("更新项目构建成功");
            Console.WriteLine("===============================");

            Console.ForegroundColor = ConsoleColor.Yellow;
            var index = 0;

            foreach (var package in packages)
            {
                Console.WriteLine("[{0:#0000}] {1}		{2}", ++index, package.Key, package.Value);
            }

            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("===============================");
            Console.WriteLine("已构建 {0} 个包。", packages.Count);
            Console.ResetColor();

            base.BuildSuccess(project, packages, resultUpdateInfo);
        }
コード例 #15
0
        /// <summary>
        /// 自动从绑定的信息中绑定信息
        /// </summary>
        public void AutoLoadInformations()
        {
            if (AuProject == null)
            {
                return;
            }

            //自动取版本号
            if (!string.IsNullOrEmpty(AuProject.VersionUpdateSrc))
            {
                var path = AuProject.ParseFullPath(AuProject.VersionUpdateSrc);
                if (File.Exists(path))
                {
                    UpdateInfo.AppVersion = ExtensionMethod.ConvertVersionInfo(System.Diagnostics.FileVersionInfo.GetVersionInfo(path)).ToString();
                }
            }

            //自动读取更新记录
            if (!string.IsNullOrEmpty(AuProject.UpdateContentSrc))
            {
                var path = AuProject.ParseFullPath(AuProject.UpdateContentSrc);
                if (File.Exists(path))
                {
                    UpdateInfo.Desc = File.ReadAllText(path);
                }
            }

            //准备UpdateInfo
            if (!string.IsNullOrEmpty(AuProject.UpdateRtfNotePath))
            {
                var path = AuProject.ParseFullPath(AuProject.UpdateRtfNotePath);
                if (File.Exists(path))
                {
                    UpdateInfo.RtfUpdateNote = Convert.ToBase64String(ExtensionMethods.CompressBuffer(System.IO.File.ReadAllBytes(path)));
                }
            }
        }
コード例 #16
0
        void InitDropSupport()
        {
            this.AllowDrop = true;
            this.txtNewSoftDir.AllowDrop = true;

            //自身
            this.DragEnter += (s, e) =>
            {
                System.Collections.Specialized.StringCollection files;
                var doe = e.Data as DataObject;
                if (
                    !doe.ContainsFileDropList()
                    ||
                    (files = doe.GetFileDropList()).Count == 0
                    ||
                    !System.IO.File.Exists(files[0])
                    ||
                    !(files[0].EndsWith(".xml", StringComparison.OrdinalIgnoreCase) || files[0].EndsWith(".auproj", StringComparison.OrdinalIgnoreCase))
                    )
                {
                    return;
                }

                e.Effect = DragDropEffects.Link;
            };
            this.DragDrop += (s, e) =>
            {
                var file = (e.Data as DataObject).GetFileDropList()[0];
                if (string.Compare(System.IO.Path.GetExtension(file), ".auproj", true) == 0)
                {
                    OpenProject(file);
                }
                else if (file.EndsWith("update.xml", StringComparison.OrdinalIgnoreCase) || file.EndsWith("update_c.xml", StringComparison.OrdinalIgnoreCase))
                {
                    //打开xml
                    var project = AuProject.LoadFromOldProject(file);
                    if (project == null)
                    {
                        Information("无法打开文件 " + file + " !");
                    }
                    else
                    {
                        UpdatePackageBuilder.Instance.AuProject = project;
                    }
                }
            };
            //升级包
            this.txtNewSoftDir.DragEnter += (s, e) =>
            {
                System.Collections.Specialized.StringCollection files;
                var doe = e.Data as DataObject;
                if (
                    !doe.ContainsFileDropList()
                    ||
                    (files = doe.GetFileDropList()).Count == 0
                    ||
                    !System.IO.Directory.Exists(files[0])
                    )
                {
                    return;
                }

                e.Effect = DragDropEffects.Link;
            };
            txtPackagePath.AllowDrop  = true;
            txtPackagePath.DragEnter += (s, e) =>
            {
                System.Collections.Specialized.StringCollection files;
                var doe = e.Data as DataObject;
                if (
                    !doe.ContainsFileDropList()
                    ||
                    (files = doe.GetFileDropList()).Count == 0
                    ||
                    !System.IO.Directory.Exists(files[0])
                    )
                {
                    return;
                }

                e.Effect = DragDropEffects.Link;
            };

            this.txtNewSoftDir.DragDrop += (s, e) =>
            {
                UpdatePackageBuilder.Instance.AuProject.ApplicationDirectory = (e.Data as DataObject).GetFileDropList()[0];
            };
            this.txtPackagePath.DragDrop += (s, e) =>
            {
                var project = UpdatePackageBuilder.Instance.AuProject;
                project.DestinationDirectory = (e.Data as DataObject).GetFileDropList()[0];
            };

            //RTF
            rtfPath.AllowDrop  = true;
            rtfPath.DragEnter += (s, e) =>
            {
                System.Collections.Specialized.StringCollection files;
                var doe = e.Data as DataObject;
                if (
                    !doe.ContainsFileDropList()
                    ||
                    (files = doe.GetFileDropList()).Count == 0
                    ||
                    !System.IO.File.Exists(files[0])
                    ||
                    !files[0].EndsWith(".rtf", StringComparison.OrdinalIgnoreCase)
                    )
                {
                    return;
                }

                e.Effect = DragDropEffects.Link;
            };
            rtfPath.DragDrop += (s, e) =>
            {
                var file = (e.Data as DataObject).GetFileDropList()[0];
                UpdatePackageBuilder.Instance.AuProject.UpdateRtfNotePath = file;
            };
        }
コード例 #17
0
 /// <summary>
 /// 获得XML文件路径
 /// </summary>
 /// <param name="compressed"></param>
 /// <returns></returns>
 public string GetXmlFilePath(bool compressed)
 {
     return(Path.Combine(AuProject.ParseFullPath(AuProject.DestinationDirectory), "update" + (compressed ? "_c" : "") + ".xml"));
 }
コード例 #18
0
        /// <summary>
        /// 创建指定包
        /// </summary>
        /// <param name="e"></param>
        public void BuildPackages(Wrapper.RunworkEventArgs e, UpdateInfo ui)
        {
            var targetDir = AuProject.ParseFullPath(AuProject.DestinationDirectory);
            var appDir    = AuProject.ParseFullPath(AuProject.ApplicationDirectory);

            if (!Directory.Exists(appDir))
            {
                throw new ApplicationException("无效的应用程序目录");
            }
            if (!Directory.Exists(targetDir))
            {
                try
                {
                    Directory.CreateDirectory(targetDir);
                }
                catch (Exception ex)
                {
                    throw new ApplicationException("无法创建目标目录", ex);
                }
            }

            e.ReportProgress(0, 0, "正在扫描文件列表...");
            FileInfo[] allfiles;

            try
            {
                allfiles = new DirectoryInfo(appDir).GetFiles("*.*", SearchOption.AllDirectories);
            }
            catch (Exception ex)
            {
                throw new ApplicationException("无法扫描来源目录", ex);
            }

            //生成映射,排除忽略列表
            e.ReportProgress(0, 0, "正在准备文件列表...");
            var projectItems = AuProject.Files.ToDictionary(s => s.Path, StringComparer.OrdinalIgnoreCase);
            var targetfiles  = allfiles.Select(s => new KeyValuePair <string, FileInfo>(s.FullName.Remove(0, appDir.Length).Trim(Path.DirectorySeparatorChar), s))
                               .Where(s => (!projectItems.ContainsKey(s.Key) && AuProject.DefaultUpdateMethod != UpdateMethod.Ignore) || (projectItems.ContainsKey(s.Key) && projectItems[s.Key].UpdateMethod != UpdateMethod.Ignore))
                               .ToArray();

            //古典版的安装包?
            if (!AuProject.EnableIncreaseUpdate || AuProject.CreateCompatiblePackage)
            {
                var mainPkgId = GetPackageName("main") + ".zip";
                var file      = System.IO.Path.Combine(targetDir, mainPkgId);
                Result.Add(mainPkgId, "兼容升级模式(或未开启增量更新时)的升级包文件");
                e.Progress.TaskCount = targetfiles.Length;
                CreateZip("正在生成兼容版升级包,正在压缩 {0}", file, ui.PackagePassword, e, targetfiles);

                var fileInfo = new System.IO.FileInfo(file);
                ui.PackageSize = fileInfo.Length;
                e.ReportProgress(0, 0, "正在计算包文件Hash...");
                ui.MD5     = Wrapper.ExtensionMethod.GetFileHash(file);
                ui.Package = mainPkgId;
            }
            if (!AuProject.EnableIncreaseUpdate)
            {
                return;
            }

            //生成主文件包
            e.ReportProgress(targetfiles.Length, 0, "");
            ui.Packages = new List <PackageInfo>();
            var mainFiles = targetfiles
                            .Where(s => (!projectItems.ContainsKey(s.Key) && AuProject.DefaultUpdateMethod == UpdateMethod.Always) || (projectItems.ContainsKey(s.Key) && projectItems[s.Key].UpdateMethod == UpdateMethod.Always))
                            .ToArray();

            if (mainFiles.Length > 0)
            {
                var mainPkgId = GetPackageName("alwaysintall") + ".zip";
                var pkgName   = Path.Combine(targetDir, mainPkgId);
                e.Progress.TaskCount = mainFiles.Length;
                CreateZip("正在生成全局升级包,正在压缩 {0}", pkgName, ui.PackagePassword, e, mainFiles);
                Result.Add(mainPkgId, "全局升级包,包含必须更新的文件");


                var fileInfo = new System.IO.FileInfo(pkgName);
                ui.Packages.Add(new PackageInfo()
                {
                    Version           = "0.0.0.0",
                    VerificationLevel = FileVerificationLevel.None,
                    FilePath          = "",
                    FileSize          = 0L,
                    FileHash          = "",
                    PackageHash       = Wrapper.ExtensionMethod.GetFileHash(pkgName),
                    PackageName       = mainPkgId,
                    PackageSize       = fileInfo.Length,
                    Method            = UpdateMethod.Always,
                    Files             = mainFiles.Select(s => s.Key).ToArray()
                });
            }

            //针对单个文件生成包
            e.Progress.TaskCount    = targetfiles.Length;
            e.Progress.TaskProgress = 0;
            foreach (var file in targetfiles)
            {
                ProjectItem config;
                if (!projectItems.ContainsKey(file.Key))
                {
                    if (AuProject.DefaultUpdateMethod == UpdateMethod.Always || AuProject.DefaultUpdateMethod == UpdateMethod.Ignore)
                    {
                        continue;
                    }
                    config = new ProjectItem()
                    {
                        UpdateMethod          = AuProject.DefaultUpdateMethod,
                        FileVerificationLevel = AuProject.DefaultFileVerificationLevel
                    };
                }
                else
                {
                    config = projectItems[file.Key];
                    //fix always pack issue
                    if (config.UpdateMethod != UpdateMethod.VersionCompare && config.UpdateMethod != UpdateMethod.SkipIfExists)
                    {
                        continue;
                    }
                }

                //file info
                var fdi = System.Diagnostics.FileVersionInfo.GetVersionInfo(file.Value.FullName);
                //var pkgFileName = file.Key.Replace("\\", "_").Replace(".", "_") + ".zip";
                var pkgFileName = GetPackageName(file.Key) + ".zip";

                var pkg = Path.Combine(targetDir, pkgFileName);
                e.ReportProgress(e.Progress.TaskCount, ++e.Progress.TaskProgress, "正在生成增量包 " + file.Key + ", 正在压缩....");
                CreateZip(null, pkg, ui.PackagePassword, null, new[] { file });
                Result.Add(pkgFileName, "文件【" + file.Key + "】的增量升级包");

                var pkgInfo = new System.IO.FileInfo(pkg);
                ui.Packages.Add(new PackageInfo()
                {
                    Version           = string.IsNullOrEmpty(fdi.FileVersion) ? "0.0.0.0" : Wrapper.ExtensionMethod.ConvertVersionInfo(fdi).ToString(),
                    VerificationLevel = config.FileVerificationLevel,
                    FilePath          = file.Key,
                    FileSize          = new FileInfo(file.Value.FullName).Length,
                    FileHash          = Wrapper.ExtensionMethod.GetFileHash(file.Value.FullName),
                    PackageHash       = Wrapper.ExtensionMethod.GetFileHash(pkg),
                    PackageName       = pkgFileName,
                    PackageSize       = pkgInfo.Length,
                    Method            = config.UpdateMethod,
                    Files             = new[] { file.Key }
                });
            }
        }
コード例 #19
0
		/// <summary>
		/// 重新绑定数据
		/// </summary>
		/// <param name="project"></param>
		void RebindDefaultUpdateMethodInfo(AuProject project)
		{

			switch (project.DefaultUpdateMethod)
			{
				case UpdateMethod.Always:
					rbAlways.Checked = true;
					break;
				case UpdateMethod.VersionCompare:
					rbVersionCheck.Checked = true;
					break;
				case UpdateMethod.SkipIfExists:
					rbOnlyNotExist.Checked = true;
					break;
				case UpdateMethod.Ignore:
					rbIgnore.Checked = true;
					break;
				default:
					break;
			}
			lblCheckTypeDesc.Text = project.DefaultUpdateMethod == UpdateMethod.VersionCompare ? project.DefaultFileVerificationLevel.ToDisplayString() : "点击选项时选择比较类型";
		}
コード例 #20
0
		protected override void BuilderFailed(AuProject project, Exception exception, UpdateInfo resultUpdateInfo)
		{
			_form.SetFailed();
			System.Windows.Forms.MessageBox.Show("更新项目构建失败:" + exception.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
			base.BuilderFailed(project, exception, resultUpdateInfo);
		}
コード例 #21
0
		protected override void BuildSuccess(AuProject project, Dictionary<string, string> packages, UpdateInfo resultUpdateInfo)
		{
			_form.SetSuccess();
			System.Windows.Forms.MessageBox.Show("更新项目构建成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
			base.BuildSuccess(project, packages, resultUpdateInfo);
		}
コード例 #22
0
 /// <summary>
 /// 构建成功
 /// </summary>
 /// <param name="project"></param>
 /// <param name="packages"></param>
 /// <param name="resultUpdateInfo"></param>
 protected virtual void BuildSuccess(AuProject project, Dictionary <string, string> packages, UpdateInfo resultUpdateInfo)
 {
     OnWorkerShutdown();
 }
コード例 #23
0
		/// <summary>
		/// 重新绑定数据
		/// </summary>
		/// <param name="project"></param>
		void RebindDefaultUpdateMethodInfo(AuProject project)
		{
			rbAlways.Checked = Utility.HasMethod(project.DefaultUpdateMethod, UpdateMethod.Always);
			rbVersionCheck.Checked = Utility.HasMethod(project.DefaultUpdateMethod, UpdateMethod.VersionCompare);
			rbOnlyNotExist.Checked = Utility.HasMethod(project.DefaultUpdateMethod, UpdateMethod.SkipIfExists);
			rbIgnore.Checked = Utility.HasMethod(project.DefaultUpdateMethod, UpdateMethod.Ignore);
			chkSkipIfNotExist.Checked = Utility.HasMethod(project.DefaultUpdateMethod, UpdateMethod.SkipIfNotExist);

			lblCheckTypeDesc.Text = Utility.HasMethod(project.DefaultUpdateMethod ,UpdateMethod.VersionCompare) ? project.DefaultFileVerificationLevel.ToDisplayString() : "点击选项时选择比较类型";
		}
コード例 #24
0
 protected override void BuildSuccess(AuProject project, Dictionary <string, string> packages, UpdateInfo resultUpdateInfo)
 {
     _form.SetSuccess();
     System.Windows.Forms.MessageBox.Show("更新项目构建成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
     base.BuildSuccess(project, packages, resultUpdateInfo);
 }
コード例 #25
0
 /// <summary>
 /// 构建失败
 /// </summary>
 /// <param name="project"></param>
 /// <param name="exception"></param>
 /// <param name="resultUpdateInfo"></param>
 protected virtual void BuilderFailed(AuProject project, Exception exception, UpdateInfo resultUpdateInfo)
 {
     OnWorkerShutdown();
 }
コード例 #26
0
 protected override void BuilderFailed(AuProject project, Exception exception, UpdateInfo resultUpdateInfo)
 {
     _form.SetFailed();
     System.Windows.Forms.MessageBox.Show("更新项目构建失败:" + exception.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
     base.BuilderFailed(project, exception, resultUpdateInfo);
 }
コード例 #27
0
		/// <summary>
		/// 创建 <see cref="PackageEventArgs" />  的新实例(PackageEventArgs)
		/// </summary>
		/// <param name="auProject"></param>
		public PackageEventArgs(AuProject auProject)
		{
			AuProject = auProject;
		}
コード例 #28
0
		void BindProject(AuProject project)
		{
			var ui = project.UpdateInfo;

			chkUseIncreaseUpdate.AddDataBinding(project, s => s.Checked, s => s.EnableIncreaseUpdate);
			chkCompressUpdateInfo.AddDataBinding(project, s => s.Checked, s => s.CompressPackage);
			chkCreateCompatiblePackage.AddDataBinding(project, s => s.Checked, s => s.CreateCompatiblePackage);

			this.deletePreviousFileMode.SelectedIndex = (int)ui.DeleteMethod;
			this.deleteRules.Text = ui.DeleteFileLimits.IsEmpty() ? "" : string.Join(Environment.NewLine, ui.DeleteFileLimits);

			txtPackagePassword.AddDataBinding(ui, s => s.Text, s => s.PackagePassword);
			requiredMinVersion.AddDataBinding(ui, s => s.Text, s => s.RequiredMinVersion);
			project.PropertyChanged += (s, e) =>
			{
				if (e.PropertyName == "DefaultUpdateMethod" || e.PropertyName == "DefaultFileVerificationLevel")
					RebindDefaultUpdateMethodInfo(s as AuProject);
			};

			RebindDefaultUpdateMethodInfo(project);
		}
コード例 #29
0
 /// <summary>
 /// 创建 <see cref="PackageEventArgs" />  的新实例(PackageEventArgs)
 /// </summary>
 /// <param name="auProject"></param>
 public PackageEventArgs(AuProject auProject)
 {
     AuProject = auProject;
 }