Udostępnij za pomocą


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 / Notatka

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

Gdy wywołasz msbuild /target:publish na wierszu polecenia, polecenie to nakazuje system MSBuild skompilować projekt i utworzyć aplikację ClickOnce w folderze publikowania. To polecenie jest równoważne wybraniu polecenia Publikuj w środowisku IDE.

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

"Cel" jest wskaźnikiem dla programu MSBuild, jak przetwarzać polecenie. Kluczowe cele to cele "kompilacji" i "publikacji". Celem kompilacji jest odpowiednik wybrania komendy Kompilacja (lub naciśnięcia 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:build.

Polecenie /target:publish nakazuje programowi MSBuild wywołanie obiektu docelowego publikowania. Docelowy punkt publikowania zależy od punktu 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 do utworzenia manifestu ClickOnce, zobacz Przewodnik: ręczne wdrażanie aplikacji ClickOnce.

Utwórz i zbuduj podstawową aplikację 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 Eksploratorze rozwiązań i wybierz pozycję Publikuj.

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

    Pojawi się strona Publikacja.

  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>Wiersz polecenia dla deweloperów.

    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.0 zawiera pliki CmdLineDemo.exe i CmdLineDemo.exemanifest aplikacji ClickOnce. Setup.exe to program rozruchowy, który domyślnie jest skonfigurowany do instalowania platformy .NET. Pliki w tym folderze zawierają kompletny zestaw plików potrzebnych do wdrożenia Twojej aplikacji w internecie lub za pośrednictwem UNC lub CD/DVD.

Uwaga / Notatka

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

Wynik procesu publikowania

Program MSBuild używa PublishDir właściwości do ustawiania lokalizacji wyjściowej kompilacji, w tym artefaktów kompilacji. PublishDir Wartość, którą program MSBuild używa jako miejsce docelowe publikacji, jest domyślnie pobierana 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 cel MSBuild z AfterTargets="ClickOncePublish" jest uruchamiany po wykonaniu tej kopii.

Właściwość PublishUrl , w przeciwieństwie do PublishDir, nie jest używana w kroku MSBuild. PublishUrl jest ignorowany, gdy uruchamiasz MSBuild bezpośrednio w celu publikacji z wiersza polecenia.

Po rozpoczęciu publikowania w środowisku IDE Visual Studio, program wywołuje MSBuild, aby opublikować artefakty w lokalizacji PublishDir. Po zakończeniu tego kroku programu MSBuild program Visual Studio publikuje pliki specyficzne dla ClickOnce do lokalizacji wskazywanej przez PublishUrl. Ten drugi krok jest uruchamiany wewnątrz procesu programu Visual Studio. Nie można wstrzyknąć żadnego celu ani zadania do uruchomienia w tym kroku, ponieważ jest to proces prowadzony przez 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 na 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 z poziomu stron właściwości Publikuj, Zabezpieczenia i Podpisywaniew projektancie projektów. 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 wzmocnionej nazwy zestawom. Ta właściwość jest ustawiana na stronie Podpisywanieprojektanta 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 zamienia się na wartość wstawioną do manifestu podczas budowania.

  • 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 zapisana w setup.exe programie inicjatorowymIsWebBootstrapper, jeśli 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 związana w oknie dialogowym Dodaj/Usuń programy dla zainstalowanej aplikacji.

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

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

  • UpdateMode określa aktualizacje przedniego 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ć bootstrapper setup.exe.

  • IsWebBootstrapper określa, czy setup.exe program inicjuje działanie 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 Description
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ą obsługi klienta twojej firmy.
UpdateURL Opcjonalny. Ustaw tę opcję adresu URL, jeśli lokalizacja aktualizacji jest inna niż InstallURL. Można na przykład ustawić wartość PublishURL na ścieżkę FTP, a UpdateURL na adres URL sieci Web.