Share via


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.

  1. Başlamadan önce sembol (.pdb) dosyalarının ve kaynak dosyalarının arşivlenmiş olduğundan emin olun.

  2. Uygulamanın 1. sürümünü dağıtın.

  3. 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.

  4. 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.

  5. 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).

  6. ve Download/Update yöntemi çağrıları arasında ne olacağının CheckForUpdate 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
    
  7. Sürüm 2'yi dağıtın.

  8. 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.