Zabezpieczenia, przechowywanie wersji i problemy z manifestami we wdrożeniach ClickOnce
Istnieją różne problemy z ClickOnce zabezpieczeń, wersji aplikacji i manifestu Składnia i semantyka, które mogą spowodować ClickOnce wdrażania nie powiodła się.
ClickOnce i kontrola konta użytkownika programu Windows Vista
W Windows Vista, aplikacje domyślnie są uruchamiane jako użytkownik standardowy, nawet jeśli bieżący użytkownik jest zalogowany na konto, które ma uprawnienia administratora.Jeśli aplikacja musi wykonać akcję, która wymaga uprawnień administratora, informuje system operacyjny, który monituje użytkownika o wprowadzenie poświadczeń administratora.Funkcja ta, o nazwie kontroli konta użytkownika (UAC), uniemożliwia aplikacjom wprowadzania zmian, które mogą mieć wpływ na cały system operacyjny bez jawnej zgody użytkownika.Aplikacje systemu Windows oświadczają one wymagają tego podniesienie poziomu uprawnień przez określenie requestedExecutionLevel atrybutu w trustInfo sekcji ich manifest aplikacji.
Ze względu na ryzyko ujawnienia aplikacji na ataki podwyższenie poziomu zabezpieczeń ClickOnce aplikacji nie można żądać podniesienie poziomu uprawnień, jeśli Kontrola konta użytkownika jest włączona dla klienta.Każdy ClickOnce aplikacji, która próbuje ustawić jego requestedExecutionLevel atrybutu do requireAdministrator lub highestAvailable nie można zainstalować na Windows Vista.
W niektórych przypadkach na ClickOnce aplikacja może spróbować uruchomić z uprawnieniami administratora, z powodu logika wykrywania Instalatora na Windows Vista.W takim przypadku można ustawić requestedExecutionLevel atrybutu w manifeście aplikacji do asInvoker.Spowoduje to samej aplikacji do uruchomienia bez podniesienie uprawnień. Visual Studio 2008 automatycznie doda ten atrybut do wszystkich manifesty aplikacji.
W wypadku opracowywania aplikacji, która wymaga uprawnień administratora na cały okres istnienia aplikacji, należy rozważyć wdrażanie aplikacji przy użyciu technologii Instalator Windows (MSI) zamiast.Aby uzyskać więcej informacji, zobacz Podstawowe informacje O Instalator Windows.
Online stosowania kontyngentów i częściowego zaufania aplikacji
Jeśli Twój ClickOnce aplikacja zostanie uruchomiona w trybie online, zamiast za pomocą instalacji, należy dopasować w ramach kontyngentu przeznaczonej dla aplikacji w trybie online.Również aplikacji sieciowych, która działa w częściowej relacji zaufania, takie jak z ograniczonym zestawem uprawnień zabezpieczeń, nie może być większa niż połowa wielkości kontyngentu.
Aby uzyskać więcej informacji i uzyskać instrukcje dotyczące zmiany kwot aplikacji w trybie online, zobacz Przegląd pamięci podręcznej w technologii ClickOnce.
Przechowywanie wersji problemy
Jeśli przypisać silnej nazwy zestawu sieci i zwiększeniu numeru wersji zestawu, aby odzwierciedlić aktualizacji aplikacji, mogą wystąpić problemy.Każdy zespół skompilowany z odniesieniem do zestaw o silnej nazwie musi sam być ponownie kompilowana lub Zgromadzenie podejmie próbę odwołać starszej wersji.Zgromadzenie spróbuje to, ponieważ korzysta z zgromadzenie stara wartość wersja w swoim wniosku bind.
Załóżmy na przykład, mają zestaw o silnej nazwie własnej projektu z wersją 1.0.0.0.Po kompilowanie zestawu, można go dodać jako odwołanie do projektu, który zawiera głównej aplikacji.Jeśli aktualizacja zgromadzenie, zwiększać wersji do 1.0.0.1 i spróbuj go wdrożyć bez również ponownego kompilowania aplikacji aplikacji nie można załadować zestawu w czasie wykonywania.
Ten błąd może wystąpić tylko wtedy, gdy edytujesz your ClickOnce manifesty ręcznie; nie należy wystąpienie tego błędu, jeśli generowane przy użyciu programu wdrożenia Visual Studio 2005.
Określanie indywidualnej.NET Framework zestawów w manifeście
Aplikacja nie powiedzie się załadować, jeśli były ręcznie edytowane ClickOnce wdrażania, aby odwołać się za starszą wersję .NET Framework zgromadzenia.Na przykład dodać odwołanie do zestawu System.Net wersję .NET Framework wersji, określonego w manifeście, następnie może wystąpić błąd.Ogólnie rzecz biorąc, należy nie próbę określenia odwołań do jednostki .NET Framework zespołów, jak wersja programu .NET Framework przeciwko działa aplikacja jest określona jako zależność w manifeście aplikacji.
Manifest analizowania problemów
Pliki manifestu, które są używane przez ClickOnce są pliki XML i muszą być zarówno poprawnie sformułowany, jak i ważne: muszą przestrzegać reguły składni XML i używać tylko elementy i atrybuty zdefiniowane w schemacie XML odpowiednie.
Coś, co może powodować problemy w pliku manifestu jest wybranie nazwy dla aplikacji, która zawiera znak specjalny, takich jak pojedynczy lub podwójny cudzysłów.Nazwa aplikacji jest częścią jej ClickOnce tożsamości.ClickOnceaktualnie nie analizuje tożsamości, które zawierają znaki specjalne.Jeśli aplikacja nie może uaktywnić, upewnij się, przy użyciu tylko alfabetyczne i numeryczne znaków dla nazwy i spróbuj ponownie wdrażać.
Jeśli były ręcznie edytowane manifesty programu wdrożenia lub aplikacji, można mieć przypadkowo uszkodzony je.Uszkodzony manifestu uniemożliwia poprawne ClickOnce instalacji.Można debugować takich błędów w czasie wykonywania przez kliknięcie przycisku Szczegóły na Błąd ClickOnce okno dialogowe i czytanie komunikat o błędzie w dzienniku.Dziennik będzie listy jedną z następujących komunikatów:
Opis błędu składni i numer wiersza oraz znak stanowiska, w którym wystąpił błąd.
Nazwa element lub atrybut używane z naruszeniem schematu manifestu.XML zostały dodane ręcznie do sieci manifestów, będzie trzeba porównać swoje dodatki do schematów manifestu.Aby uzyskać więcej informacji, zobacz Manifest wdrożenia ClickOnce i Manifest aplikacji ClickOnce.
Konflikt Identyfikatora.Zależność odniesienia w manifestach wdrożenia i stosowania musi być unikatowa w obu ich name i publicKeyToken atrybuty.Jeśli oba atrybuty są zgodne między dwoma elementami, w manifeście, analizowanie manifestu zakończy się niepowodzeniem.
Środki ostrożności podczas ręcznej zmiany manifesty lub aplikacji
Podczas aktualizowania manifest aplikacji musi podpisać ponownie zarówno manifest aplikacji, jak i manifest wdrażania.Manifest rozmieszczania zawiera odwołanie do manifest aplikacji, zawierającym wartość skrótu tego pliku i jego podpis cyfrowy.
Środki ostrożności, z użyciem dostawcy wdrażania
ClickOnce Wdrażania manifestu ma deploymentProvider właściwość, która wskazuje na pełną ścieżkę lokalizacji z gdzie aplikacji powinny być zainstalowane i obsługiwane:
<deploymentProvider codebase="http://myserver/myapp.application" />
Ścieżka ta jest ustawiana przy ClickOnce tworzy aplikacji i jest obowiązkowy dla zainstalowanych aplikacji.Ścieżka wskazuje lokalizację standardowe gdzie ClickOnce Instalator zainstaluje ten wniosek i wyszukaj aktualizacje.Jeśli korzystasz z xcopy polecenie, aby skopiować ClickOnce aplikacji do innej lokalizacji, ale nie zmienia deploymentProvider właściwość, ClickOnce będą wciąż odwoływać się ponownie do oryginalnej lokalizacji podczas próby pobrania aplikacji.
Jeśli chcesz przenieść lub skopiować aplikację, należy także zaktualizować deploymentProvider ścieżkę, tak aby klient faktycznie instaluje z nowej lokalizacji.Aktualizacja ta ścieżka jest głównie dotyczą, jeśli zainstalowano aplikacje.Dla aplikacji online, które są zawsze uruchamiane za pomocą oryginalnego adresu URL, ustawienie deploymentProvider jest opcjonalny.Jeśli deploymentProvider jest ustawiony, będą honorowane; w przeciwnym razie adres URL używany do uruchamiania aplikacji będzie używany jako podstawowy adres URL pobierania plików aplikacji.
[!UWAGA]
Każdym aktualizację manifest należy również podpisać go ponownie.
Zobacz też
Koncepcje
Rozwiązywanie problemów z wdrożeniami ClickOnce