Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
ClickOnce kan tillhandahålla automatiska programuppdateringar. Ett ClickOnce-program läser regelbundet sin distributionsmanifestfil för att se om uppdateringar av programmet är tillgängliga. Om det är tillgängligt laddas den nya versionen av programmet ned och körs. För effektivitet laddas endast de filer som har ändrats ned.
När du utformar ett ClickOnce-program måste du bestämma vilken strategi programmet ska använda för att söka efter tillgängliga uppdateringar. Det finns tre grundläggande strategier som du kan använda: söka efter uppdateringar vid programstart, söka efter uppdateringar efter programstart (körs i en bakgrundstråd) eller tillhandahålla ett användargränssnitt för uppdateringar.
Dessutom kan du bestämma hur ofta programmet ska söka efter uppdateringar och du kan göra nödvändiga uppdateringar.
Anmärkning
Programuppdateringar kräver nätverksanslutning. Om det inte finns någon nätverksanslutning körs programmet utan att söka efter uppdateringar, oavsett vilken uppdateringsstrategi du väljer.
Anmärkning
I .NET Framework 2.0 och .NET Framework 3.0 måste du ange < i distributionsmanifestet när programmet söker efter uppdateringar, före eller efter start eller med hjälp >av API:erna xref:System.Deployment.ApplicationdeploymentProvider. Elementet deploymentProvider motsvarar fältet Uppdatera plats i dialogrutan Uppdateringar på fliken Publicera i Visual Studio. Den här regeln är avslappnad i .NET Framework 3.5. Mer information finns i Distribuera ClickOnce-program för testning och produktionsservrar utan att avgå.
Sök efter uppdateringar efter programstart
Genom att använda den här strategin försöker programmet hitta och läsa distributionsmanifestfilen i bakgrunden medan programmet körs. Om en uppdatering är tillgänglig uppmanas användaren att ladda ned och installera uppdateringen nästa gång användaren kör programmet.
Den här strategin fungerar bäst för nätverksanslutningar med låg bandbredd eller för större program som kan kräva långa nedladdningar.
Om du vill aktivera den här uppdateringsstrategin klickar du på När programmet startar i avsnittet Välj när programmet ska söka efter uppdateringar i dialogrutan Programuppdateringar . Ange sedan ett uppdateringsintervall i avsnittet Ange hur ofta programmet ska söka efter uppdateringar.
Detta är samma sak som att ändra uppdateringselementet i distributionsmanifestet på följande sätt:
<!-- When to check for updates -->
<subscription>
<update>
<expiration maximumAge="6" unit="hours" />
</update>
</subscription>
Sök efter uppdateringar innan programmet startas
Standardstrategin är att försöka hitta och läsa distributionsmanifestfilen innan programmet startar. Genom att använda den här strategin försöker programmet hitta och läsa distributionsmanifestfilen varje gång användaren startar programmet. Om en uppdatering inte är tillgänglig startas den befintliga versionen av programmet. Om en nödvändig uppdatering är tillgänglig laddas den ned och startas. Om en uppdatering är tillgänglig men inte krävs får användaren välja om den befintliga versionen ska uppgraderas eller startas.
Den här strategin fungerar bäst för nätverksanslutningar med hög bandbredd. fördröjningen när programmet startas kan vara oacceptabelt lång jämfört med anslutningar med låg bandbredd.
Om du vill aktivera den här uppdateringsstrategin klickar du på Innan programmet startar i avsnittet Välj när programmet ska söka efter uppdateringar i dialogrutan Programuppdateringar .
Detta är samma sak som att ändra uppdateringselementet i distributionsmanifestet på följande sätt:
<!-- When to check for updates -->
<subscription>
<update>
<beforeApplicationStartup />
</update>
</subscription>
Anmärkning
För .NET Core 3.1- och .NET 5- och senare program är kontroll av uppdateringar innan programmet startar det enda uppdateringsalternativ som stöds.
Gör uppdateringarna obligatoriska
Det kan finnas tillfällen då du vill kräva att användarna kör en uppdaterad version av ditt program. Du kan till exempel göra en ändring i en extern resurs, till exempel en webbtjänst som hindrar den tidigare versionen av ditt program från att fungera korrekt. I det här fallet vill du markera uppdateringen efter behov och förhindra att användarna kör den tidigare versionen.
Anmärkning
Även om du kan kräva uppdateringar med hjälp av de andra uppdateringsstrategierna är kontrollen Innan programmet startar det enda sättet att garantera att en äldre version inte kan köras. När den obligatoriska uppdateringen identifieras vid start måste användaren antingen godkänna uppdateringen eller stänga programmet.
Om du vill markera en uppdatering efter behov klickar du på Ange en lägsta version som krävs för det här programmet i dialogrutan Programuppdateringar och anger sedan publiceringsversionen (huvudversion, delversion, version, revision) som anger det lägsta versionsnumret för programmet som kan installeras.
Detta är samma sak som att ange attributet minimumRequiredVersion för distributionselementet i distributionsmanifestet. till exempel:
<deployment install="true" minimumRequiredVersion="1.0.0.0">
Ange uppdateringsintervall
Du kan också ange hur ofta programmet söker efter uppdateringar. Det gör du genom att ange att programmet söker efter uppdateringar efter start enligt beskrivningen i "Söka efter uppdateringar efter programstart" tidigare i det här avsnittet.
Ange uppdateringsintervallet genom att ange Ange hur ofta programmet ska söka efter uppdateringsegenskaper i dialogrutan Programuppdateringar .
Det här är samma sak som att ange attributet maximumAge och unit för uppdateringselementet i distributionsmanifestet.
Du kanske till exempel vill kontrollera varje gång programmet körs, en gång i veckan eller en gång i månaden. Om det inte finns någon nätverksanslutning vid den angivna tidpunkten utförs uppdateringskontrollen nästa gång programmet körs.
Anmärkning
I ClickOnce för .NET Core och .NET 5 eller senare stöds inte den här funktionen. Mer information finns i ClickOnce för .NET.
Ange ett användargränssnitt för uppdateringar
När du använder den här strategin tillhandahåller programutvecklaren ett användargränssnitt som gör att användaren kan välja när eller hur ofta programmet ska söka efter uppdateringar. Du kan till exempel ange kommandot "Sök efter uppdateringar nu" eller en dialogruta med "Uppdateringsinställningar" som har alternativ för olika uppdateringsintervall. ClickOnce-distributions-API:erna tillhandahåller ett ramverk för programmering av ditt eget användargränssnitt för uppdatering. Mer information finns i namnområdet System.Deployment.Application.
Anmärkning
Klassen ApplicationDeployment och API:erna System.Deployment.Application i namnområdet stöds inte i .NET Core- och .NET 5- och senare versioner. I .NET 7 stöds en ny metod för att komma åt egenskaper för programdistribution. Mer information finns i Access ClickOnce distributionsegenskaper i .NET. .NET 7 stöder inte motsvarigheten till ApplicationDeployment-metoder.
Om ditt program använder distributions-API:er för att styra sin egen uppdateringslogik bör du blockera uppdateringskontroll enligt beskrivningen i "Blockera uppdateringskontroll" i följande avsnitt.
Den här strategin fungerar bäst när du behöver olika uppdateringsstrategier för olika användare.
Blockera uppdateringskontroll
Det är också möjligt att förhindra att programmet någonsin söker efter uppdateringar. Du kan till exempel ha ett enkelt program som aldrig kommer att uppdateras, men du vill dra nytta av den enkla installation som tillhandahålls av ClickOnce-distributionen.
Du bör också blockera uppdateringskontroll om ditt program använder distributions-API:er för att utföra sina egna uppdateringar. se "Ange ett användargränssnitt för uppdateringar" tidigare i det här avsnittet.
Om du vill blockera uppdateringskontroll avmarkerar du kryssrutan Programmet ska söka efter uppdateringar i dialogrutan Programuppdateringar.
Du kan också blockera uppdateringskontroll genom att ta bort taggen <Subscription> från distributionsmanifestet.
Behörighetshöjning och uppdateringar
Om en ny version av ett ClickOnce-program kräver en högre förtroendenivå för att köras än den tidigare versionen, frågar ClickOnce användaren och frågar om de vill att programmet ska beviljas den här högre förtroendenivån. Om användaren avböjer att bevilja den högre förtroendenivån installeras inte uppdateringen. ClickOnce uppmanar användaren att installera programmet igen när det startas om nästa gång. Om användaren inte beviljar den högre förtroendenivån vid den här tidpunkten och uppdateringen inte markeras som obligatorisk, körs den gamla versionen av programmet. Men om uppdateringen krävs körs programmet inte igen förrän användaren accepterar den högre förtroendenivån.
Ingen uppmaning om förtroendenivåer kommer att ske om du använder distribution av betrodda applikationer. Mer information finns i Översikt över distribution av betrodda program.