Dela via


ClickOnce-distribution och säkerhet

ClickOnce är en distributionsteknik som gör att du kan skapa självuppdatering av Windows-baserade program som kan installeras och köras med minimal användarinteraktion. Visual Studio ger fullständigt stöd för publicering och uppdatering av program som distribueras med ClickOnce-teknik om du har utvecklat dina projekt med Visual Basic och Visual C#. Information om hur du distribuerar Visual C++-program finns i ClickOnce Deployment for Visual C++ Applications.

ClickOnce-distributionen löser tre viktiga problem i distributionen:

  • Problem med att uppdatera program. När ett program uppdateras med distributionen av Microsoft Windows Installer kan användaren installera en uppdatering, en msp-fil och tillämpa den på den installerade produkten. med ClickOnce-distribution kan du tillhandahålla uppdateringar automatiskt. Endast de delar av programmet som har ändrats laddas ned och sedan installeras det fullständiga, uppdaterade programmet om från en ny sida vid sida-mapp.

  • Påverkan på användarens dator. Med Distribution av Windows Installer förlitar sig program ofta på delade komponenter, med potential för versionskonflikter. med ClickOnce-distributionen är varje program fristående och kan inte störa andra program.

  • Säkerhetsbehörigheter. Distribution av Windows Installer kräver administrativa behörigheter och tillåter endast begränsad användarinstallation. ClickOnce-distribution gör det möjligt för icke-administrativa användare att installera och beviljar endast de behörigheter för kodåtkomstsäkerhet som krävs för programmet.

    Tidigare orsakade dessa problem ibland att utvecklare bestämde sig för att skapa webbprogram i stället för Windows-baserade program, vilket offrade ett omfattande användargränssnitt för enkel installation. Genom att använda program som distribueras med Hjälp av ClickOnce kan du ha det bästa av båda teknikerna.

Vad är ett ClickOnce-program?

Ett ClickOnce-program är en Windows Presentation Foundation (.xbap), Windows Forms (.exe), konsolprogram (.exe) eller Office-lösning (.dll) som publicerats med hjälp av ClickOnce-teknik. Du kan publicera ett ClickOnce-program på tre olika sätt: från en webbsida, från en nätverksfilresurs eller från äldre medier, till exempel en CD-ROM. Ett ClickOnce-program kan installeras på en slutanvändares dator och köras lokalt även när datorn är offline, eller så kan det köras i ett onlineläge utan att permanent installera något på slutanvändarens dator. Mer information finns i Välj en ClickOnce-distributionsstrategi.

ClickOnce-program kan uppdateras själv. de kan söka efter nyare versioner när de blir tillgängliga och automatiskt ersätta alla uppdaterade filer. Utvecklaren kan ange uppdateringsbeteendet. en nätverksadministratör kan också styra uppdateringsstrategier, till exempel genom att markera en uppdatering som obligatorisk. Uppdateringar kan också återställas till en tidigare version av slutanvändaren eller av en administratör. Mer information finns i Välj en ClickOnce-uppdateringsstrategi.

Eftersom ClickOnce-program är isolerade kan installation eller körning av ett ClickOnce-program inte bryta befintliga program. ClickOnce-program är fristående. varje ClickOnce-program installeras till och körs från en säker cache per användare och per program. ClickOnce-program körs i internet- eller intranätsäkerhetszonerna. Om det behövs kan programmet begära utökade säkerhetsbehörigheter. För mer information, se Secure ClickOnce-applikationer.

Så här fungerar ClickOnce-säkerhet

Kärnsäkerheten i ClickOnce baseras på certifikat, säkerhetsprinciper för kodåtkomst och frågan om ClickOnce-förtroende.

Certifikaten

Authenticode-certifikat används för att verifiera programmets utgivares äkthet. Genom att använda Authenticode för programdistribution hjälper ClickOnce till att förhindra att ett skadligt program framställer sig som ett legitimt program som kommer från en etablerad, tillförlitlig källa. Du kan också använda certifikat för att signera program- och distributionsmanifesten för att bevisa att filerna inte har manipulerats. Mer information finns i ClickOnce och Authenticode. Certifikat kan också användas för att konfigurera klientdatorer att ha en lista över betrodda utgivare. Om ett program kommer från en betrodd utgivare kan det installeras utan någon användarinteraktion. Mer information finns i Översikt över distribution av betrodda program.

Kodåtkomstsäkerhet

Kodåtkomstsäkerhet hjälper till att begränsa den åtkomst som koden har till skyddade resurser. I de flesta fall kan du välja Internet- eller lokala intranätzoner för att begränsa behörigheterna. Använd sidan Security i Project Designer för att begära den zon som är lämplig för programmet. Du kan också felsöka program med begränsade behörigheter för att emulera slutanvändarupplevelsen. Mer information finns i Kodåtkomstsäkerhet för ClickOnce-applikationer.

Obs

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.

ClickOnce-förtroendeprompt

Om programmet begär fler behörigheter än vad zonen tillåter kan slutanvändaren uppmanas att fatta ett förtroendebeslut. Slutanvändaren kan avgöra om ClickOnce-program som Windows Forms-program, Windows Presentation Foundation-program, konsolprogram, XAML-webbläsarprogram och Office-lösningar är betrodda att köra. För mer information, se Så här konfigurerar du ClickOnce-förtroendeförfrågningsbeteendet.

Så fungerar ClickOnce-distribution

Kärnarkitekturen för ClickOnce-distribution baseras på två XML-manifestfiler: ett programmanifest och ett distributionsmanifest. Filerna används för att beskriva var ClickOnce-programmen installeras från, hur de uppdateras och när de uppdateras.

Publicera ClickOnce-applikationer

Programmanifestet beskriver själva programmet. Detta omfattar sammansättningar, beroenden och filer som utgör programmet, nödvändiga behörigheter och platsen där uppdateringar kommer att vara tillgängliga. Programutvecklaren skapar programmanifestet med hjälp av publiceringsguiden i Visual Studio (publiceringsverktyget för .NET Core och .NET 5+) eller manifestgenererings- och redigeringsverktyget (Mage.exe) i Windows Software Development Kit (SDK). Mer information finns i:

Distributionsmanifestet beskriver hur programmet distribueras. Detta inkluderar platsen för programmanifestet och den version av programmet som klienterna ska köra.

Notera

I ClickOnce för .NET Core 3.1 och .NET 5 eller senare använder du dotnet-mage.exe i stället för Mage.exe. Mer information finns i ClickOnce för .NET.

Distribuera ClickOnce-applikationer

När det har skapats kopieras distributionsmanifestet till distributionsplatsen. Detta kan vara en webbserver, en nätverksfilresurs eller äldre media, till exempel en CD. Programmanifestet och alla programfiler kopieras också till en distributionsplats som anges i distributionsmanifestet. Detta kan vara samma som distributionsplatsen, eller så kan det vara en annan plats. När du använder Publiceringsguiden i Visual Studio utförs kopieringsåtgärderna automatiskt.

Installera ClickOnce-applikationer

När det har distribuerats till distributionsplatsen kan slutanvändarna ladda ned och installera programmet genom att klicka på en ikon som representerar distributionsmanifestfilen på en webbsida eller i en mapp. I de flesta fall visas en enkel dialogruta där användaren uppmanas att bekräfta installationen, varefter installationen fortsätter och programmet startas utan ytterligare åtgärder. I de fall där programmet kräver utökade behörigheter eller om programmet inte är signerat av ett betrott certifikat ber dialogrutan också användaren att bevilja behörighet innan installationen kan fortsätta. Även om ClickOnce-installationer är per användare kan behörighetshöjning krävas om det finns krav som kräver administratörsbehörighet. Mer information om utökade behörigheter finns i Skydda ClickOnce-program.

Certifikat kan vara betrodda på dator- eller företagsnivå, så att ClickOnce-program som är signerade med ett betrott certifikat kan installeras tyst. Mer information om betrodda certifikat finns i Översikt över distribution av betrodda program.

Programmet kan läggas till i användarens Start--meny och i gruppen Lägg till eller ta bort program i Kontrollpanelen. Till skillnad från andra distributionstekniker läggs inget till i mappen Program Files eller registret, och inga administrativa rättigheter krävs för installation

Not

Det går också att förhindra att programmet läggs till i menyn Starta och Lägg till eller ta bort program grupp, vilket i praktiken gör att det fungerar som ett webbprogram. Mer information finns i Välj en ClickOnce-distributionsstrategi.

Uppdatera ClickOnce-applikationer

När programutvecklarna skapar en uppdaterad version av programmet genererar de ett nytt programmanifest och kopierar filer till en distributionsplats – vanligtvis en mapp på samma nivå till den ursprungliga programdistributionsmappen. Administratören uppdaterar distributionsmanifestet så att det pekar på platsen för den nya versionen av programmet.

Not

Du kan använda publiceringsguiden i Visual Studio för att utföra de här stegen. För .NET Core och .NET 5+ innehåller publiceringsverktyget de här stegen.

Förutom distributionsplatsen innehåller distributionsmanifestet även en uppdateringsplats (en webbsida eller nätverksfilresurs) där programmet söker efter uppdaterade versioner. ClickOnce Publicera egenskaper används för att ange när och hur ofta programmet ska söka efter uppdateringar. Uppdateringsbeteende kan anges i distributionsmanifestet, eller så kan det visas som användarval i programmets användargränssnitt med hjälp av ClickOnce-API:erna. Dessutom kan Publish-egenskaper användas för att göra uppdateringar obligatoriska eller återgå till en tidigare version. Mer information finns i Välja en ClickOnce-uppdateringsstrategi.

Installationsprogram från tredje part

Du kan anpassa installationsprogrammet för ClickOnce för att installera komponenter från tredje part tillsammans med ditt program. Du måste ha det omdistribuerbara paketet (.exe eller .msi fil) och beskriva paketet med ett språkneutralt produktmanifest och ett språkspecifikt paketmanifest. För mer information, se Skapa bootstrapper-paket.

ClickOnce-verktyg

I följande tabell visas de verktyg som du kan använda för att generera, redigera, signera och signera om program- och distributionsmanifesten. För .NET Core och .NET 5+ anges alternativ som liknar MSBuild-attribut med hjälp av publiceringsprofilen.

Verktyg Beskrivning
Säkerhetssida, Project Designer Signerar program- och distributionsmanifesten. För .NET Core och .NET 5+ finns de här inställningarna i publiceringsprofilen.
Publicera sida, Projektdesigner Genererar och redigerar program- och distributionsmanifest för Visual Basic- och Visual C#-program. För .NET Core och .NET 5+ finns de här inställningarna i publiceringsprofilen.
Mage.exe (verktyget för generering och redigering av manifest) Genererar program- och distributionsmanifest för Visual Basic-, Visual C#- och Visual C++-program.

Signerar och undertecknar om applikations- och distributionsmanifesten.

Kan köras från batchfiler och kommandotolken.
dotnetmage.exe (verktyget för generering och redigering av manifest) Genererar program- och distributionsmanifest för .NET 5+ C# och Visual Basic-program. Användningen motsvarar Mage.exe.

Signerar och om-signerar program- och distributionsmanifesten.

Kan köras från batchskript och kommandotolken.
MageUI.exe (manifestgenererings- och redigeringsverktyg, grafisk klient) Genererar och redigerar program- och distributionsmanifesten.

Signerar och signerar om applikations- och distributionsmanifesten.
GenerateApplicationManifest-uppgift Genererar programmanifestet.

Kan köras från MSBuild. Mer information finns i MSBuild-referens.
GenerateDeploymentManifest-uppgift Genererar distributionsmanifestet.

Kan köras från MSBuild. Mer information finns i MSBuild-referens.
SignFile-uppgift Signerar program- och distributionsmanifesten.

Kan köras från MSBuild. Mer information finns i MSBuild-referens.
Microsoft.Build.Tasks.Deployment.ManifestUtilities Utveckla ditt eget program för att generera program- och distributionsmanifesten.

I följande tabell visas den .NET Framework-version som krävs för att stödja ClickOnce-program i dessa webbläsare.

Webbläsare .NET Framework-version
Firefox 2.0 SP1, 3.5 SP1, 4
Krom 3.5
Microsoft Edge 3.5