Sdílet prostřednictvím


Sestavení aplikací .NET ClickOnce z příkazového řádku

V sadě Visual Studio můžete vytvářet projekty z příkazového řádku, i když jsou vytvořené v integrovaném vývojovém prostředí (IDE). Ve skutečnosti můžete znovu sestavit projekt vytvořený pomocí sady Visual Studio na jiném počítači, který má nainstalovaný jenom .NET 5 nebo novější. Tato funkce umožňuje reprodukovat sestavení pomocí automatizovaného procesu, například v centrálním testovacím prostředí sestavení nebo s pokročilými skriptovacími technikami nad rámec samotného sestavení projektu.

Poznámka:

Pokud chcete z příkazového řádku sestavit aplikace ClickOnce rozhraní .NET Framework, přečtěte si téma Vytváření aplikací ClickOnce z příkazového řádku.

Použití nástroje MSBuild k reprodukování nasazení aplikací .NET ClickOnce

Při vyvolání msbuild /target:publish na příkazovém řádku tento příkaz dává systému MSBuild pokyn k sestavení projektu a vytvoření aplikace ClickOnce ve složce publikování. Tento příkaz je ekvivalentní výběru příkazu Publikovat v integrovaném vývojovém prostředí (IDE).

Tento příkaz spustí msbuild.exe, který je na cestě v prostředí příkazového řádku sady Visual Studio.

"Cíl" je indikátor nástroje MSBuild o tom, jak příkaz zpracovat. Klíčové cíle jsou cíl sestavení a cíl publikování. Cíl sestavení je ekvivalentem výběru příkazu Sestavení (nebo stisknutí klávesy F5) v integrovaném vývojovém prostředí ( IDE). Pokud chcete projekt sestavit pouze, můžete zadat msbuild. Tento příkaz funguje, protože cíl sestavení je výchozím cílem pro všechny projekty generované sadou Visual Studio. V důsledku toho nemusíte explicitně zadávat cíl sestavení. Proto je zadávání msbuild stejné operace jako zadávání msbuild /target:build.

Příkaz /target:publish říká nástroji MSBuild, aby vyvolal publikační cíl. Cíl publikování závisí na cíli sestavení, což znamená, že operace publikování je nadmnožinou operace sestavení. Pokud jste například provedli změnu zdrojových souborů jazyka Visual Basic nebo C#, operace publikování automaticky znovu sestaví odpovídající sestavení.

Informace o generování úplného nasazení ClickOnce pomocí nástroje příkazového řádku Mage.exe k vytvoření manifestu ClickOnce naleznete v tématu Návod: Ruční nasazení aplikace ClickOnce.

Vytvoření a sestavení základní aplikace ClickOnce pomocí nástroje MSBuild

Nejjednodušší způsob, jak vytvořit profil publikování, je použití sady Visual Studio. K publikování pomocí nástroje MSBuild se vyžaduje profil publikování.

Vytvoření a publikování projektu ClickOnce

  1. Otevřete Visual Studio a vytvořte nový projekt.

    Zvolte šablonu projektu aplikace Windows Forms nebo aplikace WPF a pojmenujte projekt CmdLineDemoa vytvořte projekt.

  2. Klikněte pravým tlačítkem na projekt v Průzkumníku řešení a vyberte Publikovat.

    Tento krok zajistí, že je projekt správně nakonfigurovaný tak, aby vytvořil nasazení aplikace ClickOnce.

    Zobrazí se stránka Publikovat.

  3. Na stránce Publikovat vyberte Přidat profil publikování, zvolte ClickOnce a pak vyberte Dokončit.

    V tomto cvičení můžete ignorovat další nastavení konfigurace na stránce Publikovat.

  4. Po dokončení procesu vyberte Zavřít a ukončete dialogové okno Publikovat stránku.

  5. Vyberte Publikovat.

    Visual Studio vygeneruje výstup nasazení ClickOnce.

  6. Uložte projekt a poznamenejte si umístění složky, ve které je uloženo.

    Předchozí kroky vytvoří projekt ClickOnce, který byl poprvé publikován. Teď můžete reprodukovat sestavení mimo integrované vývojové prostředí (IDE).

Reprodukujte sestavení z příkazového řádku.

  1. Ukončete Visual Studio.

  2. V nabídce Start systému Windows vyberte Nástroje, >Příkazový řádek, >Developer Command Prompt.

    Otevře se příkazový řádek pro vývojáře sady Visual Studio.

  3. V příkazovém řádku sady Visual Studio se ujistěte, že aktuální adresář zobrazuje umístění projektu, který jste vytvořili dříve.

    Pokud nepracujete v adresáři projektu, zadejte příkaz pro přechod na požadované umístění, například chdir C:\Users\username\source\repos\CmdLineDemo.

  4. Chcete-li odebrat existující soubory vytvořené v předchozí části, zadejte rmdir /s publish.

    Tento krok je nepovinný, ale zajistí, že sestavení příkazového řádku vytvoří všechny nové soubory.

    Pro .NET 5 a novějších je proces vytváření aplikací .NET ClickOnce z příkazového řádku podobný. Jedním rozdílem je, že musíte zadat další vlastnost profilu publikování na příkazovém řádku MSBuild.

  5. Zadejte msbuild /target:publish /p:PublishProfile=<pubxml file> /p:PublishDir="<specific location>".

    Předchozí kroky vytvoří úplné nasazení aplikace ClickOnce v podsložce projektu s názvem publish. CmdLineDemo.application je manifest nasazení ClickOnce. Složka CmdLineDemo_1.0.0.0.0 obsahuje soubory CmdLineDemo.exe a CmdLineDemo.exe.manifest, manifest aplikace ClickOnce. Setup.exe je bootstrapper, který je ve výchozím nastavení nakonfigurovaný pro instalaci .NET. Soubory v této složce tvoří celou sadu souborů, které potřebujete k nasazení aplikace přes web nebo přes UNC nebo CD/DVD.

Poznámka:

Systém MSBuild používá možnost PublishDir k určení umístění výstupu, například msbuild /t:publish /p:PublishProfile=<pubxml file> /p:PublishDir="<specific location>".

Výstup procesu publikování

Nástroj MSBuild používá vlastnosti PublishDir k nastavení umístění výstupu sestavení, včetně sestavovacích artefaktů. Hodnota PublishDir , kterou nástroj MSBuild používá jako cíl pro publikování, se ve výchozím nastavení získá z PublishDir vlastnosti v souboru .pubxml (.NET). Toto chování můžete také přepsat na příkazovém řádku MSBuild pomocí parametru /p. Pokud přepíšete nastavení, výstup publikování přejde do zadaného umístění. Výstup se vygeneruje během kroku publikování nástroje MSBuild. Jakýkoli cíl MSBuildu běží po provedení této kopie.

Vlastnost PublishUrl , na rozdíl od PublishDir, se v kroku MSBuild nepoužívá. PublishUrl je ignorována při vyvolání nástroje MSBuild přímo pro publikování z příkazového řádku.

Při zahájení publikování v integrovaném vývojovém prostředí Visual Studio zahájí Visual Studio použití nástroje MSBuild k publikování artefaktů na umístění PublishDir. Po dokončení tohoto kroku MSBuild Visual Studio zveřejní soubory specifické pro ClickOnce do umístění, na které PublishUrl odkazuje. Tento druhý krok se spustí v procesu sady Visual Studio. Během tohoto kroku nemůžete vložit žádný cíl nebo úlohu, která se má spustit, protože se jedná o proces sady Visual Studio.

V případě nasazení nástroje MSBuild, která nepoužívají Sadu Visual Studio, zkopírujte všechny soubory v adresáři nasazení do cíle nasazení nebo média. Adresář nasazení může být složka na webu nebo na serveru FTP, sdílené složky nebo cd-ROM. Můžete například použít nástroj třetí strany nebo vlastní úlohu MSBuild ke zkopírování souborů ClickOnce.

Pro jakékoli následné zpracování ve PublishUrl složce musíte mít samostatný skript.

Důležité

Pokud PublishDir je nastavena na stejné umístění jako PublishUrl, duplicitní výstup kompilace se zkopíruje do PublishUrl umístění. Tomuto problému se můžete vyhnout ve Visual Studio 2022 verzi 17.4 a novější vytvořením nového profilu. Nový profil nastaví PublishDir na to jiné místo než PublishUrl. Na konci operace publikování se příslušné soubory ClickOnce zkopírují z umístění PublishDir do umístění PublishUrl.

Vlastnosti publikování

Při publikování aplikace pomocí předchozích postupů se do souboru profilu publikování pro projekty .NET (.NET 5 a novější) vloží následující vlastnosti. Tyto vlastnosti přímo ovlivňují způsob vytváření aplikace ClickOnce.

V souboru .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>

Tyto vlastnosti můžete přepsat na příkazovém řádku beze změny samotného souboru projektu. Například následující kód sestaví nasazení aplikace ClickOnce bez bootstrapperu:

msbuild /target:publish /p:PublishProfile=<pubxml file> /property:BootstrapperEnabled=false

Vlastnosti publikování se řídí v sadě Visual Studio ze stránek vlastností Publikovat, Zabezpečení a Podepisovánínávrháře projektu. Pro projekty .NET (.NET 5 a novější) jsou tato nastavení k dispozici v souboru pubxml, ke kterému máte přístup v sadě Visual Studio pomocí nástroje Publikovat.

Následující vlastnosti publikování jsou nastaveny na různých stránkách vlastností návrháře aplikace.

  • AssemblyOriginatorKeyFile určuje soubor klíče použitý k podepsání manifestů aplikace ClickOnce. Tento stejný klíč lze také použít k přidělení silného názvu vašim sestavením. Tato vlastnost je nastavena na stránce Podepisovánínávrháře projektu. U aplikací .NET pro Windows toto nastavení zůstane v souboru projektu.

Na stránce Publikovat jsou nastaveny následující vlastnosti:

  • PublishUrl je umístění, do kterého se aplikace publikuje v integrovaném vývojovém prostředí (IDE). Vloží se do manifestu aplikace ClickOnce, pokud nejsou zadány obě vlastnosti, tedy InstallUrl a UpdateUrl.

  • ApplicationVersion určuje verzi aplikace ClickOnce. Verze je čtyřciferné číslo. Pokud je poslední číslice "*", pak je ApplicationRevision nahrazen hodnotou vloženou do manifestu při sestavování.

  • ApplicationRevision určuje revizi. Tato hodnota je celé číslo, které se při každém publikování v integrovaném vývojovém prostředí (IDE) zvýší. Všimněte si, že se automaticky nezvýší pro sestavení provedená na příkazovém řádku.

  • Install určuje, zda je aplikace nainstalovanou aplikací nebo aplikací typu run-from-Web.

  • InstallUrl (není zobrazeno) je umístění, ze kterého uživatelé instalují aplikaci. Pokud je zadána, tato hodnota je zapsána do bootstrapperu setup.exe, pokud je vlastnost IsWebBootstrapper povolena. Pokud není UpdateUrl specifikován, je také vložen do manifestu aplikace.

  • SupportUrl (není zobrazeno) je umístění propojené v dialogovém okně Přidat nebo Odebrat programy pro nainstalovanou aplikaci.

V dialogovém okně Aktualizace aplikací jsou nastaveny následující vlastnosti, ke které se přistupuje ze stránky Publikovat .

  • UpdateEnabled určuje, zda má aplikace kontrolovat aktualizace.

  • UpdateMode určuje aktualizace v popředí. U projektů .NET (.NET 5 a novějších) není podporováno pozadí.

  • UpdateUrl (není zobrazeno) je umístění, ze kterého aplikace přijímá aktualizace. Pokud je zadána, tato hodnota se vloží do manifestu aplikace.

Následující vlastnosti jsou nastaveny v dialogovém okně Možnosti publikování , které jsou přístupné ze stránky Publikovat .

  • PublisherName určuje název vydavatele zobrazeného na příkazovém řádku při instalaci nebo spuštění aplikace. U nainstalované aplikace se také používá k zadání názvu složky v nabídce Start .

  • ProductName určuje název produktu zobrazeného na příkazovém řádku při instalaci nebo spuštění aplikace. U aplikace, která je nainstalovaná, se také používá k zadání názvu zástupce v nabídce Start.

V dialogovém okně Požadavky jsou nastaveny následující vlastnosti, ke které se přistupuje ze stránky Publikovat .

  • BootstrapperEnabled určuje, zda se má vygenerovat spouštěcí modul setup.exe.

  • IsWebBootstrapper určuje, zda setup.exe bootstrapper funguje přes web nebo v režimu založeném na disku.

Použití možností: InstallURL, SupportUrl, PublishURL, UpdateURL

Následující tabulka ukazuje čtyři možnosti adresy URL pro nasazení ClickOnce.

Možnost adresy URL Description
PublishURL Vyžaduje se k publikování aplikace ClickOnce na web.
InstallURL Optional. Tuto možnost adresy URL nastavte, pokud je instalační web jiný než PublishURL. Můžete například nastavit PublishURL cestu FTP a nastavit InstallURL ji na webovou adresu URL.
SupportURL Optional. Tuto adresu URL nastavte, pokud se web podpory liší od PublishURL. Například můžete SupportURL nastavit jako web zákaznické podpory vaší společnosti.
UpdateURL Optional. Nastavte tuto možnost URL, pokud je umístění aktualizace odlišné od umístění InstallURL. Můžete například nastavit PublishURL cestu FTP a nastavit UpdateURL ji na webovou adresu URL.