Megosztás a következőn keresztül:


A System.Deployment.Application alkalmazást használó ClickOnce-alkalmazások hibakeresése

A Visual Studióban a ClickOnce üzembe helyezése lehetővé teszi az alkalmazások frissítésének konfigurálását. Ha azonban speciális ClickOnce-telepítési funkciókat szeretne használni és testre szabni, akkor hozzá kell férnie az általa biztosított System.Deployment.Applicationüzembehelyezési objektummodellhez. Az API-kat speciális feladatokhoz használhatja System.Deployment.Application , például:

  • "Frissítés most" lehetőség létrehozása az alkalmazásban

  • Különböző alkalmazásösszetevők feltételes, igény szerinti letöltése

  • Közvetlenül az alkalmazásba integrált frissítések

  • Annak garantálása, hogy az ügyfélalkalmazás mindig naprakész.

    Mivel az System.Deployment.Application API-k csak akkor működnek, ha egy alkalmazás a ClickOnce technológiával van üzembe helyezve, a hibakeresés egyetlen módja az alkalmazás ClickOnce használatával történő üzembe helyezése, csatolása, majd hibakeresése. Nehéz lehet elég korán csatolni a hibakeresőt, mert ez a kód gyakran akkor fut, amikor az alkalmazás elindul és végrehajtja a hibakereső csatolása előtt. A megoldás az, hogy a Visual Basic-projekteknél szüneteket (vagy leállításokat) helyez el a frissítés-ellenőrzési kód vagy az igény szerinti kód előtt.

    Az ajánlott hibakeresési technika a következő:

Megjegyzés:

A ApplicationDeployment névtérben lévő System.Deployment.Application osztály és API-k nem támogatottak a .NET Core és a .NET 5 és újabb verziókban. A .NET 7-ben az alkalmazástelepítési tulajdonságok elérésének új módszere támogatott. További információ: A ClickOnce telepítési tulajdonságok elérése a .NET-ben. A .NET 7 nem támogatja az ApplicationDeployment metódusok megfelelőségét.

  1. Mielőtt hozzákezd, győződjön meg arról, hogy a szimbólumfájlok (.pdb) és a forrásfájlok archiválva vannak.

  2. Telepítse az alkalmazás 1. verzióját.

  3. Hozzon létre egy új üres megoldást. A Fájl menüben válassza az Új, majd a Project lehetőséget. Az Új projekt párbeszédpanelen nyissa meg az Egyéb projekttípusok csomópontot, majd válassza ki a Visual Studio Solutions mappát. A Sablonok panelen válassza az Üres megoldás lehetőséget.

  4. Adja hozzá az archivált forráshelyet az új megoldás tulajdonságaihoz. A Megoldáskezelőben kattintson a jobb gombbal a megoldáscsomópontra, majd válassza a Tulajdonságok lehetőséget. A Tulajdonságlapok párbeszédpanelen válassza a Forrásfájlok hibakeresése lehetőséget, majd adja hozzá az archivált forráskód könyvtárát. Ellenkező esetben a hibakereső megkeresi a elavult forrásfájlokat, mert a forrásfájl elérési útjai a .pdb fájlban vannak rögzítve. Ha a hibakereső elavult forrásfájlokat használ, egy üzenet jelzi, hogy a forrás nem egyezik.

  5. Győződjön meg arról, hogy a hibakereső megtalálja a .pdb fájlokat. Ha telepítette a fájlokat az alkalmazással, a hibakereső automatikusan megkeresi őket. Mindig a kérdéses szerelvény mellett vizsgálja először. Ellenkező esetben hozzá kell adnia az archív elérési utat a szimbólumfájl-helyek listájához.

    Nyissa meg az Eszközök (vagy hibakeresés) >beállítások panelt, és bontsa ki az Összes beállítás>hibakeresési>szimbólumok>keresési helye szakaszt . Elemek hozzáadása, módosítása vagy eltávolítása a Szimbólumfájl (.pdb) helylistájából .

    Nyissa meg az Eszközök (vagy Hibakeresés) >beállítások párbeszédpanelt, és bontsa ki a Hibakeresési>szimbólumok szakaszt . Elemek hozzáadása, módosítása vagy eltávolítása a Szimbólumfájl (.pdb) keresési helyeinek listájából.

  6. Hibakeressen a CheckForUpdate és a Download/Update metódushívások között.

    A frissítési kód például a következő lehet:

        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. Telepítse a 2. verziót.

  8. Próbálja meg csatolni a hibakeresőt az 1-es verziójú alkalmazáshoz, miközben letölt egy frissítést a 2- es verzióhoz. Másik lehetőségként használhatja a System.Diagnostics.Debugger.Break metódust, vagy egyszerűen a Stop Visual Basicben. Természetesen ezeket a metódushívásokat nem szabad éles kódban hagynia.

    Tegyük fel például, hogy Egy Windows Forms-alkalmazást fejleszt, és rendelkezik ehhez a metódushoz egy eseménykezelővel, benne a frissítési logikával. A hibakereséshez egyszerűen csatolja a gombot a gomb megnyomása előtt, majd állítson be egy töréspontot (győződjön meg arról, hogy megnyitja a megfelelő archivált fájlt, és ott állítja be a töréspontot).

    IsNetworkDeployed A tulajdonsággal csak az alkalmazás üzembe helyezésekor hívhatja meg az System.Deployment.Application API-kat; az API-kat nem szabad meghívni a Visual Studióban végzett hibakeresés során.