如果有人对我的 WyUpdate 应用程序为什么不想工作有任何反馈,请告诉我。
我正在尝试创建一个启动 WyUpdate 进程的基本控制台应用程序,然后在完成时执行我的主应用程序(刚刚更新)。
按照http://wyday.com/wybuild/help/silent-update-windows-service.php上的说明,我一点运气都没有。应用程序运行,并执行“ForceCheckForUpdate”过程,但我没有收到任何反馈:(
这是我的代码的完整列表。
我添加了一个 while 循环,希望能捕捉到来自 auBackend 的响应,但这似乎不起作用。有没有一种简单的方法可以同步运行进程并在关闭应用程序之前等待响应?
提前致谢。
使用系统; 使用 System.Threading; 使用 wyDay.Controls;命名空间 NPS.CeAUpdateLauncher { 课堂节目 { 私有静态 AutomaticUpdaterBackend auBackend; 私人静态布尔接收反馈;
static void Main(string[] args) { auBackend = new AutomaticUpdaterBackend { //TODO: set a unique string. // For instance, "appname-companyname" GUID = "CeALauncher_AutoUpdate", // With UpdateType set to Automatic, you're still in // charge of checking for updates, but the // AutomaticUpdaterBackend continues with the // downloading and extracting automatically. UpdateType = UpdateType.Automatic, }; auBackend.CheckingFailed += auBackend_CheckingFailed; auBackend.UpdateAvailable += auBackend_UpdateAvailable; auBackend.DownloadingFailed += auBackend_DownloadingFailed; auBackend.ExtractingFailed += auBackend_ExtractingFailed; auBackend.ReadyToBeInstalled += auBackend_ReadyToBeInstalled; auBackend.UpdateSuccessful += auBackend_UpdateSuccessful; auBackend.UpdateFailed += auBackend_Failed; // Initialize() and AppLoaded() must be called after events have been set. // Note: If there's a pending update to be installed, wyUpdate will be // started, then it will talk back and say "ready to install, // you can close now" at which point your app will be closed. auBackend.Initialize(); auBackend.AppLoaded(); if (!auBackend.ClosingForInstall) { //TODO: do your normal service work CheckForUpdates(); } // while(!receivedFeedback) Thread.Sleep(10000); } static void CheckForUpdates() { // Only ForceCheckForUpdate() every N days! // You don't want to recheck for updates on every app start. if (//(DateTime.Now - auBackend.LastCheckDate).TotalDays > 10 && auBackend.UpdateStepOn == UpdateStepOn.Nothing) { auBackend.ForceCheckForUpdate(); } } static void auBackend_CheckingFailed(object sender, FailArgs e) { receivedFeedback = true; } static void auBackend_UpdateAvailable(object sender, EventArgs e) { receivedFeedback = true; } static void auBackend_DownloadingFailed(object sender, FailArgs e) { receivedFeedback = true; } static void auBackend_ExtractingFailed(object sender, FailArgs e) { receivedFeedback = true; } static void auBackend_ReadyToBeInstalled(object sender, EventArgs e) { // ReadyToBeInstalled event is called when // either the UpdateStepOn == UpdateDownloaded or UpdateReadyToInstall if (auBackend.UpdateStepOn == UpdateStepOn.UpdateReadyToInstall) { //TODO: Delay the installation of the update until // it's appropriate for your app. //TODO: Do any "spin-down" operations. auBackend.InstallNow() will // exit this process using Environment.Exit(0), so run // cleanup functions now (close threads, close running programs, // release locked files, etc.) // here we'll just close immediately to install the new version auBackend.InstallNow(); } receivedFeedback = true; } static void auBackend_UpdateSuccessful(object sender, SuccessArgs e) { receivedFeedback = true; } static void auBackend_Failed(object sender, FailArgs e) { receivedFeedback = true; } }
}