Udostępnij za pośrednictwem


Tworzenie aplikacji ClickOnce z wiersza poleceń

W programie Visual Studio można kompilować projekty z poziomu wiersza polecenia, nawet jeśli są one tworzone w zintegrowanym środowisku projektowym (IDE). W rzeczywistości można ponownie skompilować projekt utworzony za pomocą programu Visual Studio na innym komputerze, na którym zainstalowano tylko program .NET Framework. Ta funkcja umożliwia odtworzenie kompilacji przy użyciu zautomatyzowanego procesu, na przykład w centralnym laboratorium kompilacji lub zaawansowanych technik tworzenia skryptów poza zakresem tworzenia samego projektu.

Uwaga

Aby skompilować aplikacje ClickOnce platformy .NET z poziomu wiersza polecenia, zobacz Kompilowanie aplikacji ClickOnce platformy .NET z wiersza polecenia.

Używanie programu MSBuild do odtwarzania wdrożeń aplikacji ClickOnce programu .NET Framework

Po wywołaniu msbuild /target:publish polecenia w wierszu polecenia to polecenie nakazuje systemowi MSBuild skompilowanie projektu i utworzenie aplikacji ClickOnce w folderze publikowania. To polecenie jest równoważne wybraniu polecenia Publikuj w środowisku IDE.

To polecenie wykonuje plik msbuild.exe, który znajduje się na ścieżce w środowisku wiersza polecenia programu Visual Studio.

Element "docelowy" jest wskaźnikiem programu MSBuild na temat sposobu przetwarzania polecenia. Kluczowe cele to docelowy element docelowy "kompilacji" i element docelowy "publish". Element docelowy kompilacji jest odpowiednikiem wybrania polecenia Kompilacja (lub naciśnięcia klawisza F5) w środowisku IDE. Jeśli chcesz tylko skompilować projekt, możesz wprowadzić wartość msbuild. To polecenie działa, ponieważ element docelowy kompilacji jest domyślnym elementem docelowym dla wszystkich projektów generowanych przez program Visual Studio. W związku z tym nie trzeba jawnie określać celu kompilacji. W związku z tym wprowadzanie msbuild jest tą samą operacją, co wprowadzanie msbuild /target:buildelementu .

Polecenie /target:publish nakazuje programowi MSBuild wywołanie obiektu docelowego publikowania. Element docelowy publikowania zależy od docelowego kompilacji, co oznacza, że operacja publikowania jest nadzbiorem operacji kompilacji. Jeśli na przykład wprowadzono zmianę w plikach źródłowych języka Visual Basic lub C#, operacja publikowania automatycznie ponownie kompiluje odpowiedni zestaw.

Aby uzyskać informacje na temat generowania pełnego wdrożenia technologii ClickOnce przy użyciu narzędzia wiersza polecenia Mage.exe w celu utworzenia manifestu ClickOnce, zobacz Przewodnik: ręczne wdrażanie aplikacji ClickOnce.

Tworzenie i tworzenie podstawowej aplikacji ClickOnce za pomocą programu MSBuild

Najprostszym sposobem utworzenia profilu publikowania jest użycie programu Visual Studio. Do opublikowania przy użyciu programu MSBuild wymagany jest profil publikowania.

Tworzenie i publikowanie projektu ClickOnce

  1. Otwórz program Visual Studio i utwórz nowy projekt.

    Wybierz szablon projektu Windows Forms App (.NET Framework) lub WPF App (.NET Framework) i nadaj projektowi CmdLineDemonazwę .

  2. W menu Kompilacja wybierz polecenie Publikuj.

    Ten krok gwarantuje, że projekt jest prawidłowo skonfigurowany do tworzenia wdrożenia aplikacji ClickOnce.

    Zostanie wyświetlony Kreator publikowania.

  3. W Kreatorze publikowania wybierz pozycję Zakończ.

    Program Visual Studio generuje i wyświetla domyślną stronę internetową o nazwie Publish.htm.

  4. Zapisz projekt i zanotuj lokalizację folderu, w której jest przechowywany.

    Powyższe kroki tworzą projekt ClickOnce, który został opublikowany po raz pierwszy. Teraz możesz odtworzyć kompilację poza środowiskiem IDE.

Odtworzenie kompilacji z poziomu wiersza polecenia

  1. Zamknij program Visual Studio.

  2. W menu Start systemu Windows wybierz pozycję Narzędzia>Wiersz polecenia dla deweloperów wiersza polecenia>.

    Zostanie otwarty wiersz polecenia dla deweloperów programu Visual Studio.

  3. W wierszu polecenia programu Visual Studio upewnij się, że bieżący katalog zawiera lokalizację utworzonego wcześniej projektu.

    Jeśli nie pracujesz w katalogu projektu, wprowadź polecenie, aby przejść do żądanej lokalizacji, na przykład chdir C:\Users\username\source\repos\CmdLineDemo.

  4. Aby usunąć istniejące pliki utworzone w poprzedniej sekcji, wprowadź .rmdir /s publish

    Ten krok jest opcjonalny, ale gwarantuje, że kompilacja wiersza polecenia generuje wszystkie nowe pliki.

  5. Wprowadź msbuild /target:publish.

    Powyższe kroki tworzą pełne wdrożenie aplikacji ClickOnce w podfolderze projektu o nazwie Publikuj. CmdLineDemo.application to manifest wdrożenia ClickOnce. Folder CmdLineDemo_1.0.0.0 zawiera pliki CmdLineDemo.exe i CmdLineDemo.exe.manifest, manifest aplikacji ClickOnce. Setup.exe to program rozruchowy, który domyślnie jest skonfigurowany do instalowania programu .NET Framework. Folder DotNetFX zawiera pliki redystrybucyjne programu .NET Framework. Pliki w tej lokalizacji składają się z całego zestawu plików, które należy wdrożyć w Internecie lub za pośrednictwem UNC lub CD/DVD.

Uwaga

System MSBuild używa opcji PublishDir , aby określić lokalizację danych wyjściowych, takich jak msbuild /t:publish /p:PublishDir="<specific location>".

Dane wyjściowe procesu publikowania

Program MSBuild używa PublishDir właściwości do ustawiania lokalizacji wyjściowej kompilacji, w tym artefaktów kompilacji. PublishDir Wartość używana przez program MSBuild jako miejsce docelowe publikowania jest domyślnie uzyskiwana z PublishDir właściwości w pliku projektu (.NET Framework). To zachowanie można zastąpić w wierszu polecenia MSBuild za pomocą przełącznika /p . Jeśli zastąpisz to ustawienie, dane wyjściowe publikowania zostaną przekazane do określonej lokalizacji. Dane wyjściowe są generowane podczas kroku publikowania programu MSBuild. Dowolny element docelowy programu MSBuild z przebiegami AfterTargets="ClickOncePublish" po wykonaniu tej kopii.

Właściwość PublishUrl , w przeciwieństwie do PublishDir, nie jest używana w kroku MSBuild. PublishUrl Program jest ignorowany podczas bezpośredniego wywoływania programu MSBuild w celu opublikowania z wiersza polecenia.

Po uruchomieniu publikowania w środowisku IDE programu Visual Studio program Visual Studio wywołuje program MSBuild w celu opublikowania PublishDir artefaktów w lokalizacji. Po zakończeniu tego kroku programu MSBuild program Visual Studio publikuje pliki specyficzne dla technologii ClickOnce do lokalizacji wskazywanej przez PublishUrlelement . Ten drugi krok jest uruchamiany wewnątrz procesu programu Visual Studio. Nie można wstrzyknąć żadnego elementu docelowego/zadania do uruchomienia w tym kroku, ponieważ jest to proces programu Visual Studio.

W przypadku wdrożeń programu MSBuild, które nie korzystają z programu Visual Studio, skopiuj wszystkie pliki w katalogu wdrażania do miejsca docelowego lub nośnika wdrożenia. Katalog wdrażania może być folderem w witrynie sieci Web lub witrynie FTP, udziale plików lub cd-ROM. Na przykład możesz użyć narzędzia innej firmy lub niestandardowego zadania MSBuild, aby skopiować pliki ClickOnce.

W przypadku każdego przetwarzania końcowego w folderze PublishUrl należy mieć oddzielny skrypt.

Ważne

Jeśli PublishDir jest ustawiona na tę samą lokalizację co PublishUrl, zduplikowane dane wyjściowe kompilacji zostaną skopiowane do PublishUrl lokalizacji. Ten problem można uniknąć w programie Visual Studio 2022 w wersji 17.4 lub nowszej, tworząc nowy profil. Nowy profil ustawia PublishDir inną lokalizację niż PublishUrl. Na końcu operacji publikowania odpowiednie pliki ClickOnce są kopiowane z lokalizacji PublishDir do PublishUrl lokalizacji.

Właściwości publikowania

Po opublikowaniu aplikacji przy użyciu poprzednich procedur następujące właściwości zostaną wstawione do pliku projektu przez Kreatora publikowania. Te właściwości mają bezpośredni wpływ na sposób tworzenia aplikacji ClickOnce.

W pliku 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>

W przypadku projektów .NET Framework można zastąpić te właściwości w wierszu polecenia bez zmiany samego pliku projektu. Na przykład poniższy kod kompiluje wdrożenie aplikacji ClickOnce bez programu inicjjącego:

msbuild /target:publish /property:BootstrapperEnabled=false

Właściwości publikowania są kontrolowane w programie Visual Studio na stronach właściwości Publikuj, Zabezpieczenia i Podpisywanie Projektant projektu.

Następujące właściwości publikowania są ustawiane na różnych stronach właściwości projektanta aplikacji.

  • AssemblyOriginatorKeyFile określa plik klucza używany do podpisywania manifestów aplikacji ClickOnce. Ten sam klucz może również służyć do przypisania silnej nazwy do zestawów. Ta właściwość jest ustawiana na stronie Podpisywanie Projektant projektu.

Następujące właściwości są ustawiane na stronie Zabezpieczenia :

  • Włącz Ustawienia zabezpieczeń ClickOnce określa, czy są generowane manifesty technologii ClickOnce. Po początkowym utworzeniu projektu generowanie manifestu ClickOnce jest domyślnie wyłączone. Kreator automatycznie włącza tę flagę podczas publikowania po raz pierwszy.

  • TargetZone określa poziom zaufania, który ma być emitowany do manifestu aplikacji ClickOnce. Możliwe wartości to "Internet", "LocalIntranet" i "Custom". Internet i LocalIntranet powodują emitowanie domyślnego zestawu uprawnień do manifestu aplikacji ClickOnce. LocalIntranet jest wartością domyślną i w zasadzie oznacza pełne zaufanie. Wartość niestandardowa określa, że tylko uprawnienia jawnie określone w pliku base app.manifest mają być emitowane do manifestu aplikacji ClickOnce. Plik app.manifest jest plikiem manifestu częściowego, który zawiera tylko definicje informacji o zaufaniu. Jest to ukryty plik, automatycznie dodawany do projektu podczas konfigurowania uprawnień na stronie Zabezpieczenia .

Następujące właściwości są ustawiane na stronie Publikowanie :

  • PublishUrl to lokalizacja, w której aplikacja jest publikowana w środowisku IDE. Jest on wstawiany do manifestu aplikacji ClickOnce, jeśli nie określono właściwości InstallUrl i UpdateUrl .

  • ApplicationVersion określa wersję aplikacji ClickOnce. Wersja jest liczbą czterocyfrową. Jeśli ostatnia cyfra to "*" (gwiazdka), ApplicationRevision element jest zastępowany wartością wstawioną do manifestu w czasie kompilacji.

  • ApplicationRevision określa poprawkę. Ta wartość jest liczbą całkowitą, która zwiększa się za każdym razem, gdy publikujesz w środowisku IDE. Zwróć uwagę, że kompilacje wykonywane w wierszu polecenia nie są automatycznie zwiększane.

  • Install Określa, czy aplikacja jest zainstalowaną aplikacją, czy aplikacją run-from-Web.

  • InstallUrl (nie pokazano) to lokalizacja, z której użytkownicy instalują aplikację. Jeśli ta wartość zostanie określona, zostanie ona spalona do programu inicjjącego setup.exe , jeśli IsWebBootstrapper właściwość jest włączona. Jest on również wstawiany do manifestu aplikacji, jeśli UpdateUrl nie został określony.

  • SupportUrl (nie pokazano) to lokalizacja połączona w oknie dialogowym Dodawanie/usuwanie programów dla zainstalowanej aplikacji.

Następujące właściwości są ustawiane w oknie dialogowym Aktualizacje aplikacji, do których uzyskuje się dostęp ze strony Publikowanie.

  • UpdateEnabled wskazuje, czy aplikacja powinna sprawdzać dostępność aktualizacji.

  • UpdateMode określa aktualizacje pierwszego planu lub aktualizacje w tle.

  • UpdateInterval określa częstotliwość sprawdzania dostępności aktualizacji przez aplikację.

  • UpdateIntervalUnits określa, czy wartość jest wyrażona UpdateInterval w jednostkach godzin, dni lub tygodni.

  • UpdateUrl (nie pokazano) to lokalizacja, z której aplikacja odbiera aktualizacje. Jeśli zostanie określona, ta wartość zostanie wstawiona do manifestu aplikacji.

Następujące właściwości są ustawiane w oknie dialogowym Opcje publikowania dostępne na stronie Publikowanie .

  • PublisherName określa nazwę wydawcy wyświetlaną w wierszu polecenia wyświetlanym podczas instalowania lub uruchamiania aplikacji. W przypadku zainstalowanej aplikacji jest ona również używana do określania nazwy folderu w menu Start .

  • ProductName określa nazwę produktu wyświetlanego w wierszu polecenia wyświetlanym podczas instalowania lub uruchamiania aplikacji. W przypadku zainstalowanej aplikacji służy również do określania nazwy skrótu w menu Start .

Następujące właściwości są ustawiane w oknie dialogowym Wymagania wstępne , do których można uzyskać dostęp ze strony Publikowanie .

  • BootstrapperEnabled określa, czy należy wygenerować program inicjer setup.exe .

  • IsWebBootstrapper określa, czy bootstrapper setup.exe działa za pośrednictwem sieci Web, czy w trybie opartym na dysku.

Opcje użycia: InstallURL, SupportUrl, PublishURL, UpdateURL

W poniższej tabeli przedstawiono cztery opcje adresu URL wdrożenia technologii ClickOnce.

Opcja adresu URL opis
PublishURL Wymagane do opublikowania aplikacji ClickOnce w witrynie internetowej.
InstallURL Opcjonalny. Ustaw tę opcję adresu URL, jeśli lokacja instalacji jest inna niż PublishURL. Można na przykład ustawić PublishURL wartość na ścieżkę FTP i ustawić InstallURL adres URL sieci Web.
SupportURL Opcjonalny. Ustaw tę opcję adresu URL, jeśli witryna pomocy technicznej jest inna niż PublishURL. Można na przykład ustawić wartość SupportURL na witrynę internetową pomocy technicznej twojej firmy.
UpdateURL Opcjonalny. Ustaw tę opcję adresu URL, jeśli lokalizacja aktualizacji jest inna niż InstallURL. Można na przykład ustawić PublishURL wartość na ścieżkę FTP i ustawić UpdateURL adres URL sieci Web.