Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V sadě Visual Studio umožňuje nasazení ClickOnce nakonfigurovat způsob aktualizace aplikace. Pokud však chcete použít a přizpůsobit pokročilé funkce nasazení ClickOnce, potřebujete přístup k modelu objektu nasazení, který System.Deployment.Applicationposkytuje . Pro pokročilé úlohy, jako je například, můžete použít rozhraní System.Deployment.Application API.
Vytvoření možnosti Aktualizovat hned ve vaší aplikaci
Podmíněné stahování různých komponent aplikací na vyžádání
Aktualizace integrované přímo do aplikace
Záruka, že klientská aplikace je vždy up-to-date
Vzhledem k tomu, že System.Deployment.Application rozhraní API fungují jenom v případě, že je aplikace nasazená pomocí technologie ClickOnce, jediným způsobem, jak je ladit, je nasadit aplikaci pomocí Technologie ClickOnce, připojit k ní a pak ji ladit. Může být obtížné připojit ladicí program dostatečně brzy, protože tento kód se často spouští při startu aplikace a zpracovává se ještě před tím, než je možné připojit ladicí program. Řešením je umístit přerušení (nebo zarážky, v projektech Visual Basic) před kontrolou aktualizací nebo kód na vyžádání.
Doporučený postup ladění je následující:
Poznámka:
Třída ApplicationDeployment a rozhraní API v System.Deployment.Application oboru názvů nejsou podporovány v .NET Core a .NET 5 a novějších verzích. V .NET 7 se podporuje nová metoda přístupu k vlastnostem nasazení aplikace. Další informace naleznete v tématu Access ClickOnce vlastnosti nasazení v .NET. .NET 7 nepodporuje ekvivalent metod ApplicationDeployment.
Než začnete, ujistěte se, že jsou soubory symbolu (.pdb) a zdrojové soubory archivovány.
Nasaďte verzi 1 aplikace.
Vytvořte nové prázdné řešení. V nabídce Soubor vyberte Nový a pak Project. V dialogovém okně Nový projekt otevřete uzel Jiné typy projektů a vyberte složku Řešení sady Visual Studio . V podokně Šablony vyberte Prázdné řešení.
Přidejte archivovanou zdrojovou lokaci do parametrů tohoto nového řešení. V Průzkumníku řešení klikněte pravým tlačítkem myši na uzel řešení a pak vyberte Vlastnosti. V dialogovém okně Stránky vlastností vyberte Ladit zdrojové soubory a pak přidejte adresář archivovaného zdrojového kódu. V opačném případě ladicí program najde zastaralé zdrojové soubory, protože cesty ke zdrojovému souboru jsou zaznamenány v souboru .pdb . Pokud ladicí program používá zastaralé zdrojové soubory, zobrazí se zpráva s informací, že zdroj neodpovídá.
Ujistěte se, že ladicí program najde soubory .pdb . Pokud jste nasadili soubory s vaší aplikací, ladicí program je najde automaticky. Vždy vypadá jako první vedle příslušného sestavení. Jinak musíte přidat cestu archivu do seznamu umístění souborů symbolů.
Otevřete podokno Nástroje (nebo Ladění) >Možnosti a rozbalte část Všech nastavení>Ladění>Symbolů>Umístění hledání. Přidejte, změňte pořadí nebo odeberte položky ze seznamu umístění symbolů (.pdb).
Otevřete dialogové okno Nástroje (nebo Ladění) >Možnosti, a expandírujte sekci Ladění>Symboly. Přidejte, změňte pořadí nebo odeberte položky ze seznamu umístění pro hledání souborů symbolů (.pdb).
Debugujte, co se stane mezi voláním metody
CheckForUpdatea voláním metodDownload/Update.Například aktualizační kód může vypadat takto:
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 SubNasazení verze 2
Pokus o připojení ladicího programu k aplikaci verze 1 během stahování aktualizace na verzi 2. Alternativně můžete použít metodu
System.Diagnostics.Debugger.Breaknebo jednodušeStopv jazyce Visual Basic. Samozřejmě byste neměli nechat tato volání metod v produkčním kódu.Předpokládejme například, že vyvíjíte aplikaci Windows Forms a máte obslužnou rutinu události pro tuto metodu s logikou aktualizace. Pokud chcete toto ladit, jednoduše připojte debugger před stisknutím tlačítka a pak nastavte breakpoint (ujistěte se, že otevřete příslušný archivovaný soubor a nastavíte breakpoint tam).
Použijte vlastnost IsNetworkDeployed k vyvolání API System.Deployment.Application pouze v případě, že je aplikace nasazena. API by se neměly vyvolávat během ladění v sadě Visual Studio.