Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In Visual Studio kunt u projecten bouwen vanaf de opdrachtregel, zelfs als ze worden gemaakt in de IDE (Integrated Development Environment). U kunt zelfs een project herbouwen dat is gemaakt met Visual Studio op een andere computer waarop slechts .NET 5 of hoger is geïnstalleerd. Met deze mogelijkheid kunt u een build reproduceren met behulp van een geautomatiseerd proces, bijvoorbeeld in een centraal buildlab of met geavanceerde scripttechnieken buiten het bereik van het bouwen van het project zelf.
Opmerking
Als u .NET Framework ClickOnce-toepassingen vanaf de opdrachtregel wilt bouwen, raadpleegt u ClickOnce-toepassingen bouwen vanaf de opdrachtregel.
MSBuild gebruiken om .NET ClickOnce-toepassingsimplementaties te reproduceren
Wanneer u aanroept msbuild /target:publish op de opdrachtregel, geeft deze opdracht het MSBuild-systeem de opdracht om het project te bouwen en een ClickOnce-toepassing te maken in de publicatiemap. Deze opdracht is gelijk aan het selecteren van de opdracht Publiceren in de IDE.
Met deze opdracht wordt msbuild.exeuitgevoerd. Deze bevindt zich op het pad in de opdrachtpromptomgeving van Visual Studio.
Een 'doel' is een indicator voor MSBuild over het verwerken van de opdracht. De belangrijkste doelen zijn het doel 'build' en het 'publish'-doel. Het builddoel is hetzelfde als het selecteren van de build-opdracht (of het drukken op F5) in de IDE. Als u alleen uw project wilt bouwen, kunt u invoeren msbuild. Deze opdracht werkt omdat het builddoel het standaarddoel is voor alle projecten die door Visual Studio worden gegenereerd. Als gevolg hiervan hoeft u het builddoel niet expliciet op te geven. Daarom is invoeren msbuild dezelfde bewerking als het invoeren msbuild /target:build.
De /target:publish opdracht vertelt MSBuild om het publicatiedoel aan te roepen. Het publicatiedoel is afhankelijk van het builddoel, wat betekent dat de publicatiebewerking een superset is van de buildbewerking. Als u bijvoorbeeld een wijziging hebt aangebracht in Visual Basic- of C#-bronbestanden, wordt de bijbehorende assembly automatisch opnieuw opgebouwd met de publicatiebewerking.
Zie Walkthrough voor informatie over het genereren van een volledige ClickOnce-implementatie met behulp van het opdrachtregelprogramma Mage.exe om uw ClickOnce-manifest te maken : Handmatig een ClickOnce-toepassing implementeren.
Een eenvoudige ClickOnce-toepassing maken en bouwen met MSBuild
De eenvoudigste manier om een publicatieprofiel te maken, is door Visual Studio te gebruiken. Een publicatieprofiel is vereist om te publiceren met MSBuild.
Een ClickOnce-project maken en publiceren
Open Visual Studio en maak een nieuw project.
Kies de projectsjabloon Windows Forms App of WPF Application en geef het project
CmdLineDemoeen naam en maak vervolgens het project.Klik met de rechtermuisknop op het project in Solution Explorer en selecteer Publiceren.
Deze stap zorgt ervoor dat het project correct is geconfigureerd voor het produceren van een ClickOnce-toepassingsimplementatie.
De pagina Publiceren wordt weergegeven.
Selecteer op de pagina Publiceren een publicatieprofiel toevoegen, KlikOnce en selecteer Voltooien.
Voor deze oefening kunt u de andere configuratie-instellingen op de pagina Publiceren negeren.
Nadat het proces is voltooid, selecteert u Sluiten om het dialoogvenster Publiceren te sluiten.
Selecteer Publiceren.
Visual Studio genereert de ClickOnce-implementatie-uitvoer.
Sla uw project op en noteer de maplocatie waarin het is opgeslagen.
Met de voorgaande stappen maakt u een ClickOnce-project dat voor het eerst is gepubliceerd. U kunt nu de build buiten de IDE reproduceren.
De build via de opdrachtregel reproduceren
Sluit Visual Studio af.
Selecteer in het menu Start van Windows Hulpprogramma's>Opdrachtregel>Ontwikkelaarsopdrachtprompt.
De Visual Studio Developer-opdrachtprompt wordt geopend.
Controleer in de Opdrachtprompt van Visual Studio of in de huidige map de locatie wordt weergegeven van het project dat u eerder hebt gemaakt.
Als u niet in de projectmap werkt, voert u een opdracht in om naar de gewenste locatie te gaan, zoals
chdir C:\Users\username\source\repos\CmdLineDemo.Als u de bestaande bestanden wilt verwijderen die in de vorige sectie zijn geproduceerd, voert u het volgende in
rmdir /s publish.Deze stap is optioneel, maar zorgt ervoor dat de opdrachtregelbuild alle nieuwe bestanden produceert.
Voor .NET 5 en hoger is het bouwen van .NET ClickOnce-toepassingen vanaf de opdrachtregel vergelijkbaar. Het enige verschil is dat u een extra eigenschap moet opgeven voor het publicatieprofiel op de MSBuild-opdrachtregel.
Voer
msbuild /target:publish /p:PublishProfile=<pubxml file> /p:PublishDir="<specific location>"in.De voorgaande stappen produceren een volledige ClickOnce-toepassingsimplementatie in een submap van uw project met de naam Publish. CmdLineDemo.application is het ClickOnce-implementatiemanifest. De map CmdLineDemo_1.0.0.0.0 bevat de bestanden CmdLineDemo.exe en CmdLineDemo.exe.manifest, het ClickOnce-toepassingsmanifest. Setup.exe is de bootstrapper, die standaard is geconfigureerd voor het installeren van .NET. De bestanden in deze map bestaan uit de volledige set bestanden die u nodig hebt om uw toepassing via internet of via UNC of CD/DVD te implementeren.
Opmerking
Het MSBuild-systeem maakt gebruik van de optie PublishDir om de locatie voor uitvoer op te geven, zoals msbuild /t:publish /p:PublishProfile=<pubxml file> /p:PublishDir="<specific location>".
Procesuitvoer publiceren
MSBuild gebruikt de PublishDir eigenschap om de build-uitvoerlocatie in te stellen, inclusief buildartefacten. De PublishDir waarde die MSBuild als doel voor de publicatie gebruikt, wordt standaard verkregen van de PublishDir eigenschap in het .pubxml-bestand (.NET). U kunt dit gedrag ook overschrijven op de MSBuild-opdrachtregel met behulp van de /p switch. Als u de instelling overschrijft, gaat de publicatie-uitvoer naar de opgegeven locatie. De uitvoer wordt gegenereerd tijdens de MSBuild-stap van publiceren. Elk MSBuild-doel met AfterTargets="ClickOncePublish" wordt uitgevoerd nadat deze kopie is gemaakt.
De PublishUrl eigenschap, in tegenstelling tot PublishDir, wordt niet gebruikt in de MSBuild-stap. 
              PublishUrl wordt genegeerd wanneer u MSBuild rechtstreeks aanroept om vanaf de opdrachtregel te publiceren.
Wanneer publiceren wordt gestart in Visual Studio IDE, roept Visual Studio MSBuild aan om artefacten naar de PublishDir locatie te publiceren. Nadat deze MSBuild-stap is voltooid, publiceert Visual Studio vervolgens ClickOnce-specifieke bestanden naar de locatie waarop wordt verwezen PublishUrl. Deze tweede stap wordt uitgevoerd binnen het Visual Studio-proces. U kunt tijdens deze stap geen doel/taak injecteren, omdat dit een Visual Studio-proces is.
Kopieer voor MSBuild-implementaties die visual Studio niet gebruiken alle bestanden in de implementatiemap naar het implementatiedoel of de media. De implementatiemap kan een map op een website of FTP-site, een bestandsshare of een cd-rom zijn. U kunt bijvoorbeeld een hulpprogramma van derden of een aangepaste MSBuild-taak gebruiken om de ClickOnce-bestanden te kopiëren.
Voor elke naverwerking in de PublishUrl map moet u een afzonderlijk script hebben.
Belangrijk
Als PublishDir is ingesteld op dezelfde locatie als PublishUrl, wordt de dubbele compilatie-uitvoer naar de locatie PublishUrl gekopieerd. U kunt dit probleem voorkomen in Visual Studio 2022 versie 17.4 en hoger door een nieuw profiel te maken. Het nieuwe profiel stelt PublishDir in op een andere locatie dan PublishUrl. Aan het einde van de publicatiebewerking worden de relevante ClickOnce-bestanden van de locatie PublishDir naar locatie PublishUrl gekopieerd.
Eigenschappen publiceren
Wanneer u de toepassing publiceert met behulp van de vorige procedures, worden de volgende eigenschappen ingevoegd in het publicatieprofielbestand voor .NET-projecten (.NET 5 en hoger). Deze eigenschappen beïnvloeden rechtstreeks hoe de ClickOnce-toepassing wordt geproduceerd.
In .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>
U kunt deze eigenschappen op de opdrachtregel overschrijven zonder het projectbestand zelf te wijzigen. Met de volgende code wordt bijvoorbeeld de ClickOnce-toepassingsimplementatie gebouwd zonder de bootstrapper:
msbuild /target:publish /p:PublishProfile=<pubxml file> /property:BootstrapperEnabled=false
Publicatie-eigenschappen worden beheerd in Visual Studio vanaf de eigenschappenpagina's Publiceren, Beveiliging en Ondertekening van projectontwerper. Voor .NET-projecten (.NET 5 en hoger) worden deze instellingen opgegeven in het pubxml-bestand, waartoe u toegang hebt in Visual Studio met behulp van het hulpprogramma Publiceren.
De volgende publicatie-eigenschappen worden ingesteld op verschillende eigenschappenpagina's van de toepassingsontwerper.
- 
              
AssemblyOriginatorKeyFilebepaalt het sleutelbestand dat wordt gebruikt om uw ClickOnce-toepassingsmanifesten te ondertekenen. Dezelfde sleutel kan ook worden gebruikt om een sterke naam toe te wijzen aan uw assemblies. Deze eigenschap is ingesteld op de pagina Ondertekening van projectontwerper. Voor .NET Windows-toepassingen blijft deze instelling aanwezig in het projectbestand. 
De volgende eigenschappen zijn ingesteld op de pagina Publiceren :
PublishUrlis de locatie waar de toepassing wordt gepubliceerd in de IDE. Dit wordt ingevoegd in het ClickOnce-toepassingsmanifest als deInstallUrl- enUpdateUrl-eigenschappen niet zijn opgegeven.ApplicationVersionhiermee geeft u de versie van de ClickOnce-toepassing op. De versie is een getal van vier cijfers. Als het laatste cijfer een '*' (sterretje) is, dan wordt deApplicationRevision-plaatsaanduiding vervangen door de waarde die tijdens de bouw in het manifest is ingevoegd.ApplicationRevisiongeeft de revisie. Deze waarde is een geheel getal, dat elke keer dat u in de IDE publiceert, wordt verhoogd. Merk op dat het niet automatisch wordt verhoogd voor builds die worden uitgevoerd op de opdrachtregel.Installbepaalt of de toepassing een geïnstalleerde toepassing of een run-from-webtoepassing is.InstallUrl(niet weergegeven) is de locatie waar gebruikers de toepassing installeren. Indien opgegeven, wordt deze waarde in de setup.exe bootstrapper verbrand als deIsWebBootstrappereigenschap is ingeschakeld. Het wordt ook ingevoegd in het toepassingsmanifest als deUpdateUrl-tag niet is opgegeven.SupportUrl(niet weergegeven) is de locatie die is gekoppeld in het dialoogvenster Programma's toevoegen/verwijderen voor een geïnstalleerde toepassing.
De volgende eigenschappen worden ingesteld in het dialoogvenster Toepassingsupdates , geopend vanaf de pagina Publiceren .
UpdateEnabledgeeft aan of de toepassing op updates moet controleren.UpdateModehiermee geeft u updates voor de voorgrond op. Voor .NET-projecten (.NET 5 en hoger) wordt Achtergrond niet ondersteund.UpdateUrl(niet weergegeven) is de locatie van waaruit de toepassing updates ontvangt. Indien opgegeven, wordt deze waarde ingevoegd in het toepassingsmanifest.
De volgende eigenschappen worden ingesteld in het dialoogvenster Opties voor publiceren , die worden geopend vanaf de pagina Publiceren .
PublisherNamehiermee geeft u de naam op van de uitgever die wordt weergegeven in de prompt die wordt weergegeven bij het installeren of uitvoeren van de toepassing. Voor een geïnstalleerde toepassing wordt deze ook gebruikt om de mapnaam op te geven in het menu Start .ProductNamegeeft de naam op van het product dat wordt weergegeven in de prompt die wordt weergegeven bij het installeren of uitvoeren van de toepassing. Voor een geïnstalleerde toepassing wordt deze ook gebruikt om de naam van de snelkoppeling op te geven in het menu Start .
De volgende eigenschappen worden ingesteld in het dialoogvenster Vereisten , geopend vanaf de pagina Publiceren .
BootstrapperEnabledbepaalt of de setup.exe bootstrapper moet worden gegenereerd.IsWebBootstrapperbepaalt of de setup.exe bootstrapper via internet of in de schijfmodus werkt.
Gebruiksopties: InstallURL, SupportUrl, PublishURL, UpdateURL
In de volgende tabel ziet u de vier URL-opties voor ClickOnce-implementatie.
| URL-optie | Description | 
|---|---|
PublishURL | 
Vereist voor het publiceren van de ClickOnce-toepassing op een website. | 
InstallURL | 
Optional. Stel deze URL-optie in als de installatiesite anders is dan de PublishURL. U kunt bijvoorbeeld het PublishURL op een FTP-pad instellen en de InstallURL url instellen op een web-URL. | 
SupportURL | 
Optional. Stel deze URL-optie in als de ondersteuningssite anders is dan de PublishURL. U kunt bijvoorbeeld de SupportURL klantondersteuningswebsite van uw bedrijf instellen. | 
UpdateURL | 
Optional. Stel deze URL-optie in als de updatelocatie anders is dan de InstallURL. U kunt bijvoorbeeld het PublishURL op een FTP-pad instellen en de UpdateURL url instellen op een web-URL. |