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 zawieradeploymentProvider
wskazanie elementuhttp://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 dodeploymentProvider
klientów nie można przekierować ścieżki używanej do aktualizacji do momentu wydania wersji aplikacji, która została przywróconadeploymentProvider
. 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ć elementdeploymentProvider
odwołujący się dohttp://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.