2009-11-05 10 views
6

Próbuję wdrożyć aplikację zbudowaną przy użyciu VS2008 Express. Chodzi o to, aby przesłać pliki na serwer internetowy (instalacja za pośrednictwem strony internetowej), a jednocześnie zaoferować instalacje offline (CD) niektórym użytkownikom, którzy nie mają połączenia z Internetem.Instalacja ClickOnce CD próbuje połączyć się z Internetem

W opcjach Publish opuściłem Installation Folder URL puste, ja zaznaczono opcji The application should check for updates (ponieważ jestem dbanie o aktualizacjach check ręcznie) i wpisałem w opcji Update location (if different than publish location).

Kiedy próbuję przetestować instalację offline, aplikacji nie można zainstalować. Otrzymuję błąd „pobieranie aplikacji nie powiodło Sprawdź połączenie sieciowe ....” I po naciśnięciu przycisku Szczegóły Czytam następujący błąd:

  • Activation of C:\Install\myapp.application resulted in exception. Following failure messages were detected:

Dlaczego jest to, że chociaż wszystkie pliki są obecny, instalacja próbuje pobrać pliki z Internetu?

Wreszcie, po usunięciu adresu URL serwera z Update location, wszystko normalnie. Czy muszę tworzyć dwie różne konfiguracje za każdym razem, gdy trzeba zaktualizować aplikację? Czy istnieje inne rozwiązanie?


Edit:

Dalsze testy wykazały, że instalacja działa normalnie w trybie offline w systemie Windows XP, ale to nie działa w systemie Windows 7. W tym ostatnim przypadku, stosując te same pliki instalacyjne, instalator próbuje pobrać aplikację z Internetu, zamiast korzystać z lokalnych plików .deploy.

Brak dostępnych guru ClickOnce?

Odpowiedz

5

Runner ClickOnce spróbuje połączyć się z podanym adresem URL, niezależnie od tego, czy pliki są już lokalnie obecne, czy nie. Będziesz potrzebować dwóch konfiguracji kompilacji do obsługi zarówno instalacji na dyskach CD, jak i internetowych. Oto odpowiednie informacje od Microsoft's documentation.

To enable this deployment strategy in Visual Studio, click From a CD-ROM or DVD-ROM on the How Installed page of the Publish Wizard.

To enable this deployment strategy manually, change the deploymentProvider tag in the deployment manifest so that the value is blank. In Visual Studio, this property is exposed as Installation URL on the Publish page of the Project Designer. In Mage.exe, it is Start Location.

Można to zrobić automatycznie, więc nie trzeba ręcznie edytować ustawienia projektu za każdym razem (i podejmowania ryzyka nawet mały błąd, który uniemożliwia klientom z aktualizacją). Niestety, ustawienia ClickOnce projektu nie wydają się być kontrolowane przez standardowe konfiguracje kompilacji, więc musisz ręcznie edytować plik projektu (który jest również skryptem MSBuild) lub osobny skrypt kompilacji w dowolnym narzędziu posługiwać się.

Wartość, którą należy przesłonić, to InstallUrl. Powinien być pusty dla kompilacji instalacji CD-ROM. Twoja kompilacja będzie wtedy musiała zbudować obie konfiguracje. Istnieje wiele przykładów na tej stronie i innych z instrukcjami, jak to zrobić.

2

Miałem problem podobny do tego, który opublikowałem w ostatnim projekcie VS2015. Moi ustawień publikowania były:

  • jaki sposób użytkownicy zainstalować aplikację - „z płyty CD-ROM lub DVD-ROM”
  • Aplikacja nie będzie sprawdzać aktualizacje

chciałbym opublikować ten z moja maszyna dev (np. mymachine01) i.plik aplikacji to wiązki wzdłuż Setup.exe zawsze zawierać linię:

<deploymentProvider codebase="http://mymachine01/Application20Name/Application20Name.application" />

Chciałbym zip, który się następnie upuść go na innym komputerze, aby przetestować instalatora i chciałbym się błąd Application cannot be started. Contact the application vendor.. Kliknięcie przycisku szczegółów ujawniłoby błąd The remote name could not be resolved, w którym aplikacja próbowała uzyskać dostęp do mymachine01. Aby to naprawić, użyłem następujących czynności:

  1. kliknij prawym przyciskiem myszy projekt w VS i wybierz Właściwości
  2. idź do publikowania zakładka
  3. kliknij "Opcje"
  4. Wybierz "Manifest"
  5. Check " Wyklucz adres URL dostawcy wdrożenia "