ClickOnce dağıtım API'sini kullanarak program aracılığıyla uygulama güncelleştirmelerini denetleme
ClickOnce, bir uygulamayı dağıtıldıktan sonra güncelleştirmenin iki yolunu sağlar. İlk yöntemde ClickOnce dağıtımını belirli aralıklarla güncelleştirmeleri otomatik olarak denetlemek üzere yapılandırabilirsiniz. İkinci yöntemde, kullanıcı isteği gibi bir olaya göre güncelleştirmeleri denetlemek için sınıfını ApplicationDeployment kullanan kod yazabilirsiniz.
Not
ApplicationDeployment Ad alanı içindeki System.Deployment.Application sınıf ve API'ler .NET Core ve .NET 5 ve sonraki sürümlerde desteklenmez. .NET 7'de, uygulama dağıtım özelliklerine erişmek için yeni bir yöntem desteklenir. Daha fazla bilgi için bkz . .NET'te ClickOnce dağıtım özelliklerine erişme. .NET 7, ApplicationDeployment yöntemlerinin eşdeğerini desteklemez.
Aşağıdaki yordamlarda programlı güncelleştirme gerçekleştirmek için bazı kodlar gösterilir ve ayrıca Programlı güncelleştirme denetimlerini etkinleştirmek için ClickOnce dağıtımınızın nasıl yapılandırıldığı açıklanır.
ClickOnce uygulamasını program aracılığıyla güncelleştirmek için güncelleştirmeler için bir konum belirtmeniz gerekir. Bu bazen dağıtım sağlayıcısı olarak adlandırılır. Bu özelliği ayarlama hakkında daha fazla bilgi için bkz . ClickOnce güncelleştirme stratejisi seçme.
Not
Uygulamanızı bir konumdan dağıtmak ancak başka bir konumdan güncelleştirmek için aşağıda açıklanan tekniği de kullanabilirsiniz. Daha fazla bilgi için bkz . Nasıl yapılır: Dağıtım güncelleştirmeleri için alternatif bir konum belirtme.
Güncelleştirmeleri program aracılığıyla denetlemek için
Tercih ettiğiniz komut satırı veya görsel araçları kullanarak yeni bir Windows Forms uygulaması oluşturun.
Kullanıcılarınızın güncelleştirmeleri denetlemek için seçmesini istediğiniz düğmeyi, menü öğesini veya başka bir kullanıcı arabirimi öğesini oluşturun. Bu öğenin olay işleyicisinden güncelleştirmeleri denetlemek ve yüklemek için aşağıdaki yöntemi çağırın.
private void InstallUpdateSyncWithInfo() { UpdateCheckInfo info = null; if (ApplicationDeployment.IsNetworkDeployed) { ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment; try { info = ad.CheckForDetailedUpdate(); } catch (DeploymentDownloadException dde) { MessageBox.Show("The new version of the application cannot be downloaded at this time. \n\nPlease check your network connection, or try again later. Error: " + dde.Message); return; } catch (InvalidDeploymentException ide) { MessageBox.Show("Cannot check for a new version of the application. The ClickOnce deployment is corrupt. Please redeploy the application and try again. Error: " + ide.Message); return; } catch (InvalidOperationException ioe) { MessageBox.Show("This application cannot be updated. It is likely not a ClickOnce application. Error: " + ioe.Message); return; } if (info.UpdateAvailable) { Boolean doUpdate = true; if (!info.IsUpdateRequired) { DialogResult dr = MessageBox.Show("An update is available. Would you like to update the application now?", "Update Available", MessageBoxButtons.OKCancel); if (!(DialogResult.OK == dr)) { doUpdate = false; } } else { // Display a message that the app MUST reboot. Display the minimum required version. MessageBox.Show("This application has detected a mandatory update from your current " + "version to version " + info.MinimumRequiredVersion.ToString() + ". The application will now install the update and restart.", "Update Available", MessageBoxButtons.OK, MessageBoxIcon.Information); } if (doUpdate) { try { ad.Update(); MessageBox.Show("The application has been upgraded, and will now restart."); Application.Restart(); } catch (DeploymentDownloadException dde) { MessageBox.Show("Cannot install the latest version of the application. \n\nPlease check your network connection, or try again later. Error: " + dde); return; } } } } }
Uygulamanızı derleyin.
Güncelleştirmeleri program aracılığıyla denetleen bir uygulama dağıtmak için Mage.exe kullanma
İzlenecek Yol: ClickOnce uygulamasını el ile dağıtma başlığı altında açıklandığı gibi Mage.exe kullanarak uygulamanızı dağıtma yönergelerini izleyin. Dağıtım bildirimini oluşturmak için Mage.exe çağırırken, komut satırı anahtarını
providerUrl
kullandığınızdan ve ClickOnce'ın güncelleştirmeleri denetlemesi gereken URL'yi belirttiğinizden emin olun. Uygulamanız uygulamasındanhttp://www.adatum.com/MyApp
güncelleştirilecekse, örneğin, dağıtım bildirimini oluşturma çağrınız şöyle görünebilir:mage -New Deployment -ToFile WindowsFormsApp1.application -Name "My App 1.0" -Version 1.0.0.0 -AppManifest 1.0.0.0\MyApp.manifest -providerUrl http://www.adatum.com/MyApp/MyApp.application
Güncelleştirmeleri program aracılığıyla denetleyebilir bir uygulama dağıtmak için MageUI.exe kullanma
- İzlenecek Yol: ClickOnce uygulamasını el ile dağıtma başlığı altında açıklandığı gibi Mage.exe kullanarak uygulamanızı dağıtma yönergelerini izleyin. Dağıtım Seçenekleri sekmesinde Başlangıç Konumu alanını ClickOnce'ın güncelleştirmeleri denetlemesi gereken uygulama bildirimi olarak ayarlayın. Güncelleştirme Seçenekleri sekmesinde, Bu uygulama güncelleştirmeleri denetlemelidir onay kutusunu temizleyin.
.NET Framework Güvenliği
Programlı güncelleştirmeyi kullanmak için uygulamanızın tam güven izinlerine sahip olması gerekir.