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.
I Visual Studio kan du skapa projekt från kommandoraden, även om de skapas i den integrerade utvecklingsmiljön (IDE). I själva verket kan du återskapa ett projekt som skapats med Visual Studio på en annan dator som bara har .NET 5 eller senare installerat. Med den här funktionen kan du återskapa en version med hjälp av en automatiserad process, till exempel i ett centralt bygglabb eller med avancerade skripttekniker som ligger utanför själva projektets omfång.
Anmärkning
Information om hur du skapar .NET Framework ClickOnce-program från kommandoraden finns i Skapa ClickOnce-program från kommandoraden.
Använda MSBuild för att återskapa .NET ClickOnce-programdistributioner
När du anropar msbuild /target:publish på kommandoraden instruerar det här kommandot MSBuild-systemet att skapa projektet och skapa ett ClickOnce-program i publiceringsmappen. Det här kommandot motsvarar att välja kommandot Publicera i IDE.
Det här kommandot kör msbuild.exe, som finns på sökvägen i Visual Studio-kommandotolkens miljö.
Ett "mål" är en indikator på MSBuild om hur kommandot ska bearbetas. De viktigaste målen är "build"-målet och "publicera"-målet. Byggmålet motsvarar att välja kommandot Build (eller trycka på F5) i IDE. Om du bara vill skapa projektet kan du ange msbuild. Det här kommandot fungerar eftersom byggmålet är standardmålet för alla projekt som genereras av Visual Studio. Därför behöver du inte uttryckligen ange byggmålet. Att ange msbuild motsvarar samma åtgärd som att ange msbuild /target:build.
Kommandot /target:publish instruerar MSBuild att anropa publiceringsmålet. Publiceringsmålet beror på byggmålet, vilket innebär att publiceringsåtgärden är en superuppsättning av byggåtgärden. Om du till exempel har ändrat Visual Basic- eller C#-källfiler återskapar publiceringsåtgärden automatiskt motsvarande sammansättning.
Information om hur du genererar en fullständig ClickOnce-distribution med hjälp av kommandoradsverktyget Mage.exe för att skapa ditt ClickOnce-manifest finns i Genomgång: Distribuera ett ClickOnce-program manuellt.
Skapa och skapa ett grundläggande ClickOnce-program med MSBuild
Det enklaste sättet att skapa en publiceringsprofil är att använda Visual Studio. En publiceringsprofil krävs för att publicera med MSBuild.
Skapa och publicera ett ClickOnce-projekt
Öppna Visual Studio och skapa ett nytt projekt.
Välj projektmallen Windows Forms App eller WPF-program och ge projektet
CmdLineDemonamnet och skapa sedan projektet.Högerklicka på projektet i Solution Explorer och välj Publicera.
Det här steget säkerställer att projektet är korrekt konfigurerat för att skapa en ClickOnce-programdistribution.
Sidan Publicera visas.
På sidan Publicera väljer du Lägg till en publiceringsprofil, väljer ClickOnce och sedan Slutför.
I den här övningen kan du ignorera de andra konfigurationsinställningarna på sidan Publicera.
När processen är klar väljer du Stäng för att avsluta dialogrutan Publicera sida.
Välj Publicera.
Visual Studio genererar ClickOnce-distributionsresultat.
Spara projektet och anteckna mappplatsen där det lagras.
Föregående steg skapar ett ClickOnce-projekt som har publicerats för första gången. Nu kan du återskapa versionen utanför IDE.
Återskapa bygget från kommandoraden
Avsluta Visual Studio.
På Start-menyn i Windows väljer duVerktyg>Kommandorad>Utvecklarkommandotolk.
Kommandotolken för Visual Studio Developer öppnas.
I Visual Studio-kommandotolken kontrollerar du att den aktuella katalogen visar platsen för projektet som du skapade tidigare.
Om du inte arbetar i projektkatalogen anger du ett kommando för att ändra till önskad plats, till exempel
chdir C:\Users\username\source\repos\CmdLineDemo.Om du vill ta bort befintliga filer som skapades i föregående avsnitt anger du
rmdir /s publish.Det här steget är valfritt, men det säkerställer att kommandoradsversionen genererar alla nya filer.
För .NET 5 och senare är det en liknande upplevelse att skapa .NET ClickOnce-program från kommandoraden. Den enda skillnaden är att du måste ange en extra egenskap för publiceringsprofilen på MSBuild-kommandoraden.
Ange
msbuild /target:publish /p:PublishProfile=<pubxml file> /p:PublishDir="<specific location>".Föregående steg skapar en fullständig ClickOnce-programdistribution i en undermapp i projektet med namnet publish. CmdLineDemo.application är ClickOnce-distributionsmanifestet. Mappen CmdLineDemo_1.0.0.0 innehåller filerna CmdLineDemo.exe och CmdLineDemo.exe.manifest, ClickOnce-programmanifestet. Setup.exe är bootstrappern, som som standard är konfigurerad för att installera .NET. Filerna i den här mappen består av hela uppsättningen filer som du behöver för att distribuera ditt program via webben eller via UNC eller CD/DVD.
Anmärkning
MSBuild-systemet använder alternativet PublishDir för att ange platsen för utdata, till exempel msbuild /t:publish /p:PublishProfile=<pubxml file> /p:PublishDir="<specific location>".
Publicera processutdata
MSBuild använder PublishDir egenskapen för att ange utdataplatsen för bygget, inklusive byggartefakter. Värdet PublishDir som MSBuild använder som mål för publiceringen hämtas som standard från PublishDir egenskapen i .pubxml-filen (.NET). Du kan också åsidosätta det här beteendet på MSBuild-kommandoraden med hjälp av växeln /p . Om du åsidosätter inställningen går publiceringsutdata till den angivna platsen. Utdata genereras under MSBuild-steget för publicering. Varje MSBuild-mål med AfterTargets="ClickOncePublish" körs efter att denna kopia har gjorts.
Egenskapen PublishUrl , till skillnad från PublishDir, används inte i MSBuild-steget.
PublishUrl ignoreras när du anropar MSBuild direkt för att publicera från kommandoraden.
När publiceringen startas i Visual Studio IDE anropar Visual Studio MSBuild för att publicera artefakter på platsen PublishDir . När det här MSBuild-steget har slutförts publicerar Visual Studio sedan ClickOnce-specifika filer till den plats som pekas på av PublishUrl. Det andra steget körs i Visual Studio-processen. Du kan inte mata in mål/aktiviteter som ska köras under det här steget eftersom det är en Visual Studio-process.
För MSBuild-distributioner som inte använder Visual Studio kopierar du alla filer i distributionskatalogen till distributionsmålet eller mediet. Distributionskatalogen kan vara antingen en mapp på en webbplats eller FTP-plats, en filresurs eller en CD-ROM. Du kan till exempel använda ett verktyg från tredje part eller en anpassad MSBuild-uppgift för att kopiera ClickOnce-filerna.
För eventuell efterbearbetning i PublishUrl mappen måste du ha ett separat skript.
Viktigt!
Om PublishDir är inställt på samma plats som PublishUrlkopieras dubbletter av kompileringsutdata till platsen PublishUrl . Du kan undvika det här problemet i Visual Studio 2022 version 17.4 och senare genom att skapa en ny profil. Den nya profilen anges PublishDir till en annan plats än PublishUrl. I slutet av publiceringsåtgärden kopieras relevanta ClickOnce-filer från PublishDir platsen till PublishUrl .
Publicera egenskaper
När du publicerar programmet med hjälp av föregående procedurer infogas följande egenskaper i publiceringsprofilfilen för .NET-projekt (.NET 5 och senare). Dessa egenskaper påverkar direkt hur ClickOnce-programmet skapas.
I .pubxml:
<AssemblyOriginatorKeyFile>WindowsApplication3.snk</AssemblyOriginatorKeyFile>
<GenerateManifests>true</GenerateManifests>
<TargetZone>LocalIntranet</TargetZone>
<PublisherName>Microsoft</PublisherName>
<ProductName>CmdLineDemo</ProductName>
<PublishUrl>http://localhost/CmdLineDemo</PublishUrl>
<Install>true</Install>
<ApplicationVersion>1.0.0.*</ApplicationVersion>
<ApplicationRevision>1</ApplicationRevision>
<UpdateEnabled>true</UpdateEnabled>
<UpdateRequired>false</UpdateRequired>
<UpdateMode>Foreground</UpdateMode>
<UpdateUrlEnabled>false</UpdateUrlEnabled>
<IsWebBootstrapper>true</IsWebBootstrapper>
<BootstrapperEnabled>true</BootstrapperEnabled>
Du kan åsidosätta dessa egenskaper på kommandoraden utan att ändra själva projektfilen. Följande kod skapar till exempel ClickOnce-programdistributionen utan bootstrapper:
msbuild /target:publish /p:PublishProfile=<pubxml file> /property:BootstrapperEnabled=false
Publiceringsegenskaper styrs i Visual Studio från egenskapssidorna Publicera, Säkerhet och Signering i Projektdesignern. För .NET-projekt (.NET 5 och senare) finns de här inställningarna i pubxml-filen, som du kan komma åt i Visual Studio med hjälp av verktyget Publicera.
Följande publiceringsegenskaper anges på olika egenskapssidor i programdesignern.
-
AssemblyOriginatorKeyFileavgör vilken nyckelfil som används för att signera ditt ClickOnce-programmanifest. Samma nyckel kan också användas för att tilldela ett starkt namn till dina sammansättningar. Den här egenskapen anges på sidan Signering i Projektdesignern. För .NET Windows-program finns den här inställningen kvar i projektfilen.
Följande egenskaper anges på sidan Publicera :
PublishUrlär den plats där programmet publiceras till i IDE. Den infogas i ClickOnce-programmanifestet om bådeInstallUrlegenskapen ochUpdateUrlinte har angetts.ApplicationVersionanger versionen av ClickOnce-programmet. Versionen är ett fyrsiffrigt tal. Om den sista siffran är en "*" (asterisk) ersättsApplicationRevisionmed det värde som infogats i manifestet vid tidpunkten för kompileringen.ApplicationRevisionanger revisionen. Det här värdet är ett heltal som ökar varje gång du publicerar i IDE. Observera att den inte ökas automatiskt för versioner som utförs på kommandoraden.Installavgör om programmet är ett installerat program eller ett run-from-Web-program.InstallUrl(visas inte) är den plats där användarna installerar programmet från. Om det anges bränns det här värdet i setup.exe bootstrapper om egenskapenIsWebBootstrapperär aktiverad. Den infogas också i programmanifestet om denUpdateUrlinte har angetts.SupportUrl(visas inte) är platsen som är länkad i dialogrutan Lägg till/ta bort program för ett installerat program.
Följande egenskaper anges i dialogrutan Programuppdateringar som nås från sidan Publicera .
UpdateEnabledanger om programmet ska söka efter uppdateringar.UpdateModeanger förgrundsuppdateringar. För .NET-projekt (.NET 5 och senare) stöds inte Background.UpdateUrl(visas inte) är platsen där programmet tar emot uppdateringar. Om det anges infogas det här värdet i programmanifestet.
Följande egenskaper anges i dialogrutan Publiceringsalternativ som nås från sidan Publicera .
PublisherNameanger namnet på utgivaren som visas i prompten som visas när programmet installeras eller körs. För ett installerat program används det också för att ange mappnamnet på Start-menyn .ProductNameanger namnet på produkten som visas i prompten som visas när programmet installeras eller körs. För ett installerat program används det också för att ange genvägsnamnet på Start-menyn .
Följande egenskaper anges i dialogrutan Förutsättningar som nås från sidan Publicera .
BootstrapperEnabledavgör om setup.exe bootstrapper ska genereras.IsWebBootstrapperavgör om setup.exe bootstrapper fungerar via webben eller i diskbaserat läge.
Användningsalternativ: InstallURL, SupportUrl, PublishURL, UpdateURL
I följande tabell visas de fyra URL-alternativen för ClickOnce-distribution.
| URL-alternativ | Description |
|---|---|
PublishURL |
Krävs för att publicera ClickOnce-programmet på en webbplats. |
InstallURL |
Valfritt. Ange det här URL-alternativet om installationsplatsen skiljer sig från PublishURL. Du kan till exempel ange PublishURL till en FTP-sökväg och ange InstallURL till en webb-URL. |
SupportURL |
Valfritt. Ange det här URL-alternativet om supportwebbplatsen skiljer sig från PublishURL. Du kan till exempel ange SupportURL till företagets kundsupportwebbplats. |
UpdateURL |
Valfritt. Ange det här URL-alternativet om uppdateringsplatsen skiljer sig från InstallURL. Du kan till exempel ange PublishURL till en FTP-sökväg och ange UpdateURL till en webb-URL. |