Vytváření aplikací 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é pouze rozhraní .NET Framework. 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:

Chcete-li sestavovat aplikace .NET ClickOnce z příkazového řádku, přečtěte si téma Sestavení aplikací .NET ClickOnce z příkazového řádku.

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

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

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

    Zvolte šablonu projektu model Windows Forms App (.NET Framework) nebo WPF App (.NET Framework) a pojmenujte projekt CmdLineDemo.

  2. V nabídce Sestavení vyberte příkaz Publikovat.

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

    Zobrazí se Průvodce publikováním.

  3. V Průvodci publikováním vyberte Dokončit.

    Visual Studio vygeneruje a zobrazí výchozí webovou stránku s názvem Publish.htm.

  4. 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> 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.

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

  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.

  5. Zadejte msbuild /target:publish.

    Předchozí kroky vytvoří úplné nasazení aplikace ClickOnce v podsložce projektu s názvem Publikovat. 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 rozhraní .NET Framework. Složka DotNetFX obsahuje distribuovatelné soubory pro rozhraní .NET Framework. Soubory v tomto umístění tvoří celou sadu souborů, které potřebujete nasadit 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: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 projektu (.NET Framework). Toto chování můžete 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é PublishUrlodkazuje . 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í

Když aplikaci publikujete pomocí předchozích postupů, průvodce publikováním vloží do souboru projektu následující vlastnosti. Tyto vlastnosti přímo ovlivňují způsob vytváření aplikace ClickOnce.

V CmdLineDemo.vbproj / CmdLineDemo.csproj:

<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>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdateUrlEnabled>false</UpdateUrlEnabled>
<IsWebBootstrapper>true</IsWebBootstrapper>
<BootstrapperEnabled>true</BootstrapperEnabled>

U projektů rozhraní .NET Framework můžete tyto vlastnosti 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 /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.

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.

Na stránce Zabezpečení jsou nastaveny následující vlastnosti:

  • Povolení Nastavení zabezpečení ClickOnce určuje, zda jsou generovány manifesty ClickOnce. Při počátečním vytvoření projektu je generování manifestu ClickOnce ve výchozím nastavení vypnuté. Průvodce automaticky zapne tento příznak při prvním publikování.

  • TargetZone určuje úroveň důvěryhodnosti, která se má vygenerovat do manifestu aplikace ClickOnce. Možné hodnoty jsou Internet, LocalIntranet a Custom. Internet a LocalIntranet způsobují, že se do manifestu aplikace ClickOnce vygeneruje výchozí nastavení oprávnění. LocalIntranet je výchozí hodnota a v podstatě to znamená úplný vztah důvěryhodnosti. Vlastní určuje, že do manifestu aplikace ClickOnce se generují pouze oprávnění explicitně zadaná v souboru base app.manifest . Soubor app.manifest je částečný soubor manifestu , který obsahuje pouze definice informací o důvěryhodnosti. Jedná se o skrytý soubor, který se automaticky přidá do projektu při konfiguraci oprávnění na stránce Zabezpečení .

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 InstallUrl 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 , pokud IsWebBootstrapper je vlastnost povolena. Pokud není zadaný, vloží se také do manifestu UpdateUrl 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í nebo aktualizace na pozadí.

  • UpdateInterval určuje, jak často má aplikace kontrolovat aktualizace.

  • UpdateIntervalUnits určuje, jestli UpdateInterval je hodnota v jednotkách hodin, dnů nebo týdnů.

  • 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 PublishURLwebu . 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 PublishURLwebu 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 InstallURLumístění . Můžete například nastavit PublishURL cestu FTP a nastavit UpdateURL ji na webovou adresu URL.