Udostępnij za pośrednictwem


Kompilowanie aplikacji ClickOnce platformy .NET z poziomu wiersza polecenia

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 z zainstalowanym tylko programem .NET 5 lub nowszym. 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 programu .NET Framework z poziomu wiersza polecenia, zobacz Build ClickOnce applications from the command line (Kompilowanie aplikacji ClickOnce w wierszu polecenia).

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

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 lub WPF Application i nadaj projektowi CmdLineDemonazwę , a następnie utwórz projekt.

  2. Kliknij prawym przyciskiem myszy projekt w Eksplorator rozwiązań i wybierz pozycję Publikuj.

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

    Zostanie wyświetlona strona Publikowanie.

  3. Na stronie Publikowanie wybierz pozycję Dodaj profil publikowania, wybierz pozycję ClickOnce, a następnie wybierz pozycję Zakończ.

    W tym ćwiczeniu można zignorować inne ustawienia konfiguracji na stronie Publikowanie.

  4. Po zakończeniu procesu wybierz pozycję Zamknij , aby zamknąć okno dialogowe Publikowanie strony.

  5. Wybierz Publikuj.

    Program Visual Studio generuje dane wyjściowe wdrożenia ClickOnce.

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

    W przypadku platformy .NET 5 lub nowszej kompilowanie aplikacji ClickOnce platformy .NET z poziomu wiersza polecenia jest podobne. Jedną z różnic jest podanie dodatkowej właściwości profilu publikowania w wierszu polecenia MSBuild.

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

    Powyższe kroki tworzą pełne wdrożenie aplikacji ClickOnce w podfolderze projektu o nazwie publish. 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 platformy .NET. Pliki w tym folderze 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:PublishProfile=<pubxml file> /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 .pubxml (.NET). To zachowanie można również 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

Podczas publikowania aplikacji przy użyciu poprzednich procedur następujące właściwości są wstawiane do pliku profilu publikowania dla projektów .NET (.NET 5 i nowszych). Te właściwości mają bezpośredni wpływ na sposób tworzenia aplikacji ClickOnce.

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

Te właściwości można zastąpić 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 /p:PublishProfile=<pubxml file> /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. W przypadku projektów .NET (.NET 5 i nowszych) te ustawienia są dostępne w pliku pubxml, do którego można uzyskać dostęp w programie Visual Studio przy użyciu narzędzia Publikuj.

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. W przypadku aplikacji systemu Windows .NET to ustawienie pozostaje w pliku projektu.

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. W przypadku projektów .NET (.NET 5 i nowszych) tło nie jest obsługiwane.

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