Wdrażanie aplikacji ClickOnce na potrzeby testowania i serwerów produkcyjnych bez rezygnacji

W tym artykule opisano funkcję technologii ClickOnce wprowadzoną w programie .NET Framework w wersji 3.5, która umożliwia wdrażanie aplikacji ClickOnce z wielu lokalizacji sieciowych bez ponownego podpisywania lub zmieniania manifestów Technologii ClickOnce.

Uwaga

Rezygnacja jest nadal preferowaną metodą wdrażania nowych wersji aplikacji. Jeśli to możliwe, użyj metody rezygnacji. Aby uzyskać więcej informacji, zobacz Mage.exe (Narzędzie tworzenia i edycji manifestów).

Deweloperzy innych firm i dostawcy oprogramowania mogą wyrazić zgodę na tę funkcję, co ułatwia klientom aktualizowanie aplikacji. Tej funkcji można używać w następujących sytuacjach:

  • Podczas aktualizowania aplikacji nie w przypadku pierwszej instalacji aplikacji.

  • Jeśli na komputerze istnieje tylko jedna konfiguracja aplikacji. Jeśli na przykład aplikacja jest skonfigurowana tak, aby wskazywała dwie różne bazy danych, nie można użyć tej funkcji.

Wykluczanie elementu deploymentProvider z manifestów wdrożenia

W programach .NET Framework 2.0 i .NET Framework 3.0 wszystkie aplikacje ClickOnce instalowane w systemie pod kątem dostępności offline muszą zawierać listę deploymentProvider w manifeście wdrożenia. Element deploymentProvider jest często określany jako lokalizacja aktualizacji. Jest to lokalizacja, w której clickOnce sprawdza dostępność aktualizacji aplikacji. To wymaganie, wraz z koniecznością podpisania wdrożeń przez wydawców aplikacji, utrudniło firmie zaktualizowanie aplikacji ClickOnce od dostawcy lub innej firmy. Utrudnia również wdrażanie tej samej aplikacji z wielu lokalizacji w tej samej sieci.

W przypadku zmian wprowadzonych w technologii ClickOnce w programie .NET Framework 3.5 można udostępnić aplikację ClickOnce innej firmie, która może następnie wdrożyć aplikację we własnej sieci.

Aby móc korzystać z tej funkcji, deweloperzy aplikacji ClickOnce muszą wykluczyć deploymentProvider z manifestów wdrażania. To wymaganie oznacza, że należy wykluczyć -providerUrl argument podczas tworzenia manifestów wdrożenia za pomocą narzędzia Mage.exe. Jeśli też generujesz manifesty wdrożenia za pomocą narzędzia MageUI.exe, upewnij się, że pole tekstowe Launch Location (Uruchom lokalizację ) na karcie Manifest aplikacji jest puste.

Uwaga

W technologii ClickOnce dla platformy .NET Core 3.1 i .NET 5 lub nowszej użyj polecenia dotnet-mage.exe zamiast narzędzia Mage.exe. Aby uzyskać więcej informacji, zobacz ClickOnce dla platformy .NET.

deploymentProvider i aktualizacje aplikacji

Począwszy od programu .NET Framework 3.5, nie musisz już określać deploymentProvider w manifeście wdrożenia, aby wdrożyć aplikację ClickOnce zarówno w trybie online, jak i offline. Ta zmiana obsługuje scenariusz, w którym należy samodzielnie spakować i podpisać wdrożenie, ale zezwolić innym firmom na wdrażanie aplikacji za pośrednictwem sieci.

Ważne jest, aby pamiętać, że aplikacje, które wykluczają deploymentProvider lokalizację instalacji, nie mogą zmienić ich lokalizacji instalacji podczas aktualizacji, dopóki nie będą dostarczane aktualizacji zawierającej deploymentProvider tag ponownie.

Oto dwa przykłady, aby wyjaśnić ten punkt. W pierwszym przykładzie publikujesz aplikację ClickOnce, która nie deploymentProvider ma tagu, i prosisz użytkowników o zainstalowanie jej z witryny http://www.adatum.com/MyApplication/. Jeśli zdecydujesz, że chcesz opublikować następną aktualizację aplikacji z http://subdomain.adatum.com/MyApplication/witryny , nie masz możliwości oznaczenia tego w manifeście wdrożenia, który znajduje się w pliku http://www.adatum.com/MyApplication/. Możesz wykonać jedną z dwóch czynności:

  • Poinformuj użytkowników o odinstalowaniu poprzedniej wersji i zainstalowaniu nowej wersji z nowej lokalizacji.

  • Dołącz aktualizację http://www.adatum.com/MyApplication/ , która zawiera deploymentProvider wskazanie elementu http://www.adatum.com/MyApplication/. Następnie wydaj kolejną aktualizację później, deploymentProvider wskazując wartość http://subdomain.adatum.com/MyApplication/.

    W drugim przykładzie publikujesz aplikację ClickOnce, która określa deploymentProvider, a następnie decydujesz się ją usunąć. Po pobraniu nowej wersji do deploymentProvider klientów nie można przekierować ścieżki używanej do aktualizacji do momentu wydania wersji aplikacji, która została przywrócona deploymentProvider . Podobnie jak w przypadku pierwszego przykładu, deploymentProvider musi początkowo wskazywać bieżącą lokalizację aktualizacji, a nie nową lokalizację. W takim przypadku, jeśli spróbujesz wstawić element deploymentProvider odwołujący się do http://subdomain.adatum.com/MyApplication/, następna aktualizacja zakończy się niepowodzeniem.

Tworzenie wdrożenia

Aby uzyskać szczegółowe wskazówki dotyczące tworzenia wdrożeń, które można wdrożyć z różnych lokalizacji sieciowych, zobacz Przewodnik: Ręczne wdrażanie aplikacji ClickOnce, która nie wymaga ponownego podpisywania i które zachowuje informacje o znakowaniu.