System.Deployment.Application kullanan ClickOnce uygulamalarında hata ayıklama
Visual Studio'da ClickOnce dağıtımı, bir uygulamanın nasıl güncelleştirileceklerini yapılandırmanıza olanak tanır. Ancak, gelişmiş ClickOnce dağıtım özelliklerini kullanmanız ve özelleştirmeniz gerekiyorsa, tarafından System.Deployment.Applicationsağlanan dağıtım nesnesi modeline erişmeniz gerekir. API'leri System.Deployment.Application aşağıdaki gibi gelişmiş görevler için kullanabilirsiniz:
Uygulamanızda "Şimdi Güncelleştir" seçeneği oluşturma
Çeşitli uygulama bileşenlerinin koşullu, isteğe bağlı indirmeleri
Güncelleştirmeler doğrudan uygulamaya tümleştirilmiş
İstemci uygulamasının her zaman güncel olmasını garanti etme
API'ler System.Deployment.Application yalnızca bir uygulama ClickOnce teknolojisiyle dağıtıldığında çalıştığından, hata ayıklamanın tek yolu uygulamayı ClickOnce kullanarak dağıtmak, buna iliştirmek ve sonra hata ayıklamaktır. Hata ayıklayıcıyı eklemeden önce bu kod genellikle uygulama başlatıldığında ve yürütülürken çalıştığından, hata ayıklayıcıyı yeterince erken eklemek zor olabilir. Çözüm, güncelleştirme denetim kodunuz veya isteğe bağlı kodunuz öncesinde kesmeler (veya Visual Basic projeleri için duraklar) yerleştirmektir.
Önerilen hata ayıklama tekniği aşağıdaki gibidir:
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.
Başlamadan önce sembol (.pdb) dosyalarının ve kaynak dosyalarının arşivlenmiş olduğundan emin olun.
Uygulamanın 1. sürümünü dağıtın.
Yeni bir boş çözüm oluşturun. Dosya menüsünde Yeni'ye ve ardından Proje'ye tıklayın. Yeni Proje iletişim kutusunda Diğer Proje Türleri düğümünü açın ve Visual Studio Çözümleri klasörünü seçin. Şablonlar bölmesinde Boş Çözüm'e tıklayın.
Arşivlenen kaynak konumu bu yeni çözümün özelliklerine ekleyin. Çözüm Gezgini'de çözüm düğümüne sağ tıklayın ve ardından Özellikler'e tıklayın. Özellik Sayfaları iletişim kutusunda Kaynak Dosyalarda Hata Ayıkla'yı seçin ve arşivlenen kaynak kodun dizinini ekleyin. Aksi takdirde, kaynak dosya yolları .pdb dosyasına kaydedildiğinden hata ayıklayıcı güncel olmayan kaynak dosyaları bulur. Hata ayıklayıcı güncel olmayan kaynak dosyaları kullanıyorsa, kaynağın eşleşmediğini belirten bir ileti görürsünüz.
Hata ayıklayıcının .pdb dosyalarını bulabileceğinden emin olun. Bunları uygulamanızla dağıttıysanız, hata ayıklayıcı bunları otomatik olarak bulur. Her zaman önce söz konusu derlemenin yanında görünür. Aksi takdirde, arşiv yolunu Simge dosyası (.pdb) konumlarına eklemeniz gerekir (bu seçeneğe erişmek için Araçlar menüsünde Seçenekler'e tıklayın, ardından Hata Ayıklama düğümünü açın ve Simgeler'e tıklayın).
ve
Download
/Update
yöntemi çağrıları arasında ne olacağınınCheckForUpdate
hatalarını ayıkla.Örneğin, güncelleştirme kodu aşağıdaki gibi olabilir:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If My.Application.Deployment.IsNetworkDeployed Then If (My.Application.Deployment.CheckForUpdate()) Then My.Application.Deployment.Update() Application.Restart() End If End If End Sub
Sürüm 2'yi dağıtın.
2. sürüm için bir güncelleştirme indirirken hata ayıklayıcıyı sürüm 1 uygulamasına eklemeyi deneme. Alternatif olarak, yöntemini veya yalnızca
Stop
Visual Basic'te kullanabilirsinizSystem.Diagnostics.Debugger.Break
. Elbette, bu yöntem çağrılarını üretim kodunda bırakmamalısınız.Örneğin, bir Windows Forms uygulaması geliştirdiğinizi ve içinde güncelleştirme mantığı olan bu yöntem için bir olay işleyiciniz olduğunu varsayalım. Bunun hatalarını ayıklamak için düğmeye basmadan önce iliştirin, ardından bir kesme noktası ayarlayın (uygun arşivlenmiş dosyayı açtığınızdan ve kesme noktasını orada ayarladığınızdan emin olun).
IsNetworkDeployed YALNıZCA uygulama dağıtıldığında API'leri çağırmak System.Deployment.Application için özelliğini kullanın; API'ler Visual Studio'da hata ayıklama sırasında çağrılamamalıdır.
İlgili içerik
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin