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 cíl publikování. 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 části 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
Otevřete Visual Studio a vytvořte nový projekt.
Zvolte šablonu projektu aplikace model Windows Forms nebo WPF a pojmenujte projekt
CmdLineDemo
a pak projekt vytvořte.Klikněte pravým tlačítkem na projekt v Průzkumník ř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.
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.
Po dokončení procesu vyberte Zavřít a ukončete dialogové okno Publikovat stránku.
Vyberte Publikovat.
Visual Studio vygeneruje výstup nasazení ClickOnce.
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.
Ukončete Visual Studio.
V nabídce Start systému Windows vyberte> Příkazový řádek Nástroje příkazového řádku>Developer Command Prompt.
Otevře se příkazový řádek pro vývojáře sady Visual Studio.
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 v adresáři projektu nefungujete, zadejte příkaz pro změnu požadovaného umístění, například
chdir C:\Users\username\source\repos\CmdLineDemo
.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ší je vytváření aplikací .NET ClickOnce z příkazového řádku podobné prostředí. Jedním rozdílem je, že musíte zadat další vlastnost profilu publikování na příkazovém řádku MSBuild.
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 obsahuje soubory CmdLineDemo.exe a CmdLineDemo.exe.manifest, Manifest aplikace ClickOnce. Setup.exe je bootstrapper, který je ve výchozím nastavení nakonfigurován 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á PublishDir
vlastnost k nastavení výstupního umístění sestavení, včetně artefaktů sestavení. 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 NÁSTROJE MSBuild pomocí /p
přepínače. 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 NÁSTROJE MSBuild se spuštěním AfterTargets="ClickOncePublish"
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 spuštění publikování v integrovaném vývojovém prostředí sady Visual Studio vyvolá Visual Studio nástroj MSBuild k publikování artefaktů do PublishDir
umístění. Po dokončení tohoto kroku NÁSTROJE MSBuild sada Visual Studio publikuje 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 v sadě Visual Studio 2022 verze 17.4 a novějším vytvořením nového profilu. Nový profil se nastaví PublishDir
na jiné místo než PublishUrl
. Na konci operace publikování se příslušné soubory ClickOnce zkopírují z PublishDir
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. Stejný klíč lze také použít k přiřazení silného názvu sestavení. 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ányInstallUrl
UpdateUrl
obě vlastnosti.ApplicationVersion
určuje verzi aplikace ClickOnce. Verze je čtyřciferné číslo. Pokud poslední číslice je hvězdička (*),ApplicationRevision
nahradí se hodnota vložená do manifestu v době sestavení.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 spálena do bootstrapper setup.exe , pokudIsWebBootstrapper
je vlastnost povolena. Pokud není zadaný, vloží se také do manifestuUpdateUrl
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 aplikace 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 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 nainstalované aplikace 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 bootstrapper setup.exe .IsWebBootstrapper
určuje, zda bootstrapper setup.exe 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 | Popis |
---|---|
PublishURL |
Vyžaduje se k publikování aplikace ClickOnce na web. |
InstallURL |
Nepovinné. Tuto adresu URL nastavte, pokud se instalační web liší od instalačního PublishURL webu . Můžete například nastavit PublishURL cestu FTP a nastavit InstallURL ji na webovou adresu URL. |
SupportURL |
Nepovinné. Tuto adresu URL nastavte, pokud se web podpory liší od PublishURL webu podpory . Můžete například nastavit SupportURL web zákaznické podpory vaší společnosti. |
UpdateURL |
Nepovinné. Tuto adresu URL nastavte, pokud se umístění aktualizace liší od InstallURL umístění . Můžete například nastavit PublishURL cestu FTP a nastavit UpdateURL ji na webovou adresu URL. |