Udostępnij za pośrednictwem


Tworzenie aplikacji ClickOnce dla innych osób do wdrożenia

Nie wszyscy deweloperzy, którzy są tworzenie wdrażania ClickOnce planowane wdrożenie same aplikacje.Wiele z nich tylko pakiet ich stosowania przy użyciu technologii ClickOnce, a następnie oddaniem plików do odbiorcy, takich jak dużej firmie.Klient staje się jeden za hostingu aplikacji w jego sieci.W tym temacie omówiono niektóre problemy związane z takimi wdrożeniami w wersjach.NET Framework w wersji 3.5.Następnie Opisuje nowe rozwiązanie, pod warunkiem za pomocą funkcji nowych "Użyj manifest dla zaufania" w.NET Framework 3.5.Wreszcie, stwierdza z zalecane strategie tworzenia wdrażania ClickOnce dla klientów, którzy są nadal przy użyciu starszych wersji.NET Framework.

Problemów związanych z wykonywaniem wdrożeń klientów

Kilka problemów wystąpić, gdy plan dostaw wdrażania do klienta.Pierwszy problem dotyczy, podpisywanie kodu.Aby wdrożyć w sieci, manifestu wdrażania i manifest aplikacji z wdrażania ClickOnce muszą zarówno być podpisane za pomocą certyfikatu cyfrowego.Rodzi to pytanie, czy użyć developer's certyfikatu lub certyfikat klienta podczas podpisywania manifestów.

Pytanie, którego certyfikat jest krytyczne, tożsamości aplikacji ClickOnce jest oparty na podpis cyfrowy manifestu wdrażania.Jeśli programista podpisuje manifestu wdrażania, może prowadzić do konfliktów, jeśli klient jest dużym przedsiębiorstwem i więcej niż jednego wydziału firmy wdraża dostosowaną wersję aplikacji.

Załóżmy na przykład, że Adventure Works ma dział finansowy i dział kadr.Departamentach zarówno licencji aplikacji ClickOnce od firmy Microsoft Corporation, który generuje raporty z danych przechowywanych w bazie danych SQL.Firma Microsoft dostarcza każdego działu z wersją aplikacji, który jest dostosowany do ich danych.Jeśli wnioski są podpisane za ten sam certyfikat Authenticode, użytkownik, który próbuje użyć obu aplikacji napotyka błąd, odnośnie ClickOnce byłoby drugiej aplikacji jako taka sama, jak pierwszy.W tym przypadku klient może wystąpić nieprzewidziane i niepożądane efekty uboczne, które obejmują straty dowolne dane przechowywane lokalnie przez aplikację.

Dodatkowe problem związany, podpisywanie kodu jest deploymentProvider element w manifeście wdrażania, które informuje o tym ClickOnce, gdzie szukać aktualizacji aplikacji.Ten element ma zostać dodane do manifestu wdrażania przed do jej podpisanie.Ten element jest dodawany później, muszą podpisywany manifestu wdrażania.

Bb384248.collapse_all(pl-pl,VS.110).gifWymagające klienta do podpisania manifestu wdrażania

Jednym rozwiązaniem tego problemu wdrożeń unikatowy ma mieć znak developer manifest aplikacji i klienta podpisania manifestu wdrażania.Podczas działania tego podejścia, wprowadzono inne problemy.Ponieważ certyfikat Authenticode musi pozostać chronionych aktywów, klienta tylko nie można nadać certyfikatowi do autora do podpisania rozmieszczania.Podczas gdy klient może podpisać rozmieszczania manifest same przy użyciu narzędzia swobodnie dostępne z.NET Framework SDK, może to wymagać bardziej technicznej wiedzy niż klient jest gotów lub w stanie dostarczyć.W takich przypadkach deweloper tworzy zwykle aplikacji, witryny sieci Web lub inny mechanizm, za pomocą którego klient może przesłać swoją wersję aplikacji do podpisywania.

Bb384248.collapse_all(pl-pl,VS.110).gifWpływ klientów, podpisywania na zabezpieczenia aplikacji ClickOnce

Nawet jeśli autora i klient zgadzają się, że klient powinien podpisać manifest aplikacji, to stwarza inne kwestie, które otaczają tożsamości aplikacji, zwłaszcza, że odnosi się do wdrażania aplikacji zaufanych.(Aby uzyskać więcej informacji na temat tej funkcji, zobacz Omówienie rozmieszczania aplikacji zaufanych.) Powiedzmy, że Adventure Works chce skonfigurować jego komputery klienckie, tak aby był uruchamiany z pełne zaufanie dowolnej aplikacji do nich dostarczane przez firmę Microsoft Corporation.Jeśli Adventure Works podpisuje manifestu wdrażania, ClickOnce będzie używać podpisu zabezpieczeń Adventure pracy do określenia poziomu zaufania aplikacji.

Tworzenie wdrożeń klienta przy użyciu Manifest aplikacji dla zaufania

ClickOnce w.NET Framework 3.5 zawiera nową funkcję, która umożliwia deweloperom i klientów nowe rozwiązanie do scenariusz jak podpisane manifestów.Manifest aplikacji ClickOnce obsługuje nowy element o nazwie <useManifestForTrust> , który umożliwia developer wyznaczać podpis cyfrowy manifest aplikacji jest, jakie powinny być wykorzystywane do podejmowania decyzji zaufania.Programista używa ClickOnce pakowania narzędzi — takich jak Mage.exe, MageUI.exe i Visual Studio — Aby dołączyć ten element manifest aplikacji, jak również aby osadzić w manifeście zarówno ich nazwę wydawcy, jak i nazwę aplikacji.

Podczas korzystania z <useManifestForTrust>, manifestu wdrażania nie musi być podpisany przy użyciu certyfikatu Authenticode wystawiony przez urząd certyfikacji.Zamiast tego może być podpisany ze znanej jako certyfikat z podpisem własnym.Certyfikat z podpisem własnym jest generowany przez klienta lub dewelopera przy użyciu standardu.NET Framework SDK narzędzia, a następnie zastosowana do manifestu wdrażania przy użyciu standardowych narzędzi wdrażania ClickOnce.Aby uzyskać więcej informacji, zobacz MakeCert.exe (narzędzia tworzenia certyfikatów).

Za pomocą certyfikatu z podpisem własnym dla manifestu wdrażania przedstawia kilka zalet.Poprzez wyeliminowanie potrzeby klienta do tworzenia własnych certyfikat Authenticode <useManifestForTrust> upraszcza wdrażanie dla klienta, pozwalając autora zachować swoją tożsamość marki na wniosek.Wynik jest zestawem podpisane wdrożeń, które są bardziej bezpieczne i mają tożsamości aplikacji unikatowe.Eliminuje to potencjalny konflikt, który może wystąpić z wdrażanie tej samej aplikacji do wielu klientów.

Dla informacje krok po kroku dotyczące tworzenia, wdrażania ClickOnce, z <useManifestForTrust> włączona, zobacz Instruktaż: Ręcznie wdrażanie aplikacji ClickOnce, które nie wymagają Re-Signing i że zachowuje informacje o znakowaniu.

Bb384248.collapse_all(pl-pl,VS.110).gifManifest jak aplikacji Works zaufania w czasie wykonywania

Aby uzyskać lepsze zrozumienie, jak działa przy użyciu manifest aplikacji dla zaufania w czasie wykonywania, rozważmy następujący przykład.Aplikacja ClickOnce, który jest przeznaczony.NET Framework 3.5 jest tworzony przez firmę Microsoft.Manifest aplikacji używa <useManifestForTrust> element i jest podpisane przez firmę Microsoft.Adventure Works podpisuje manifestu wdrażania przy użyciu certyfikatu z podpisem własnym.Adventure Works klientów są skonfigurowane do zaufania dowolnej aplikacji, podpisanego przez firmę Microsoft.

Po kliknięciu łącza do manifestu wdrażania ClickOnce instaluje aplikację na komputerze użytkownika.Informacje na temat certyfikatu i wdrażania zidentyfikować aplikacji, które jednoznacznie do ClickOnce na komputerze klienckim.Jeśli użytkownik spróbuje ponownie zainstalować tej samej aplikacji z innej lokalizacji, ClickOnce można użyć tej tożsamości do ustalenia, czy aplikacja już istnieje na komputerze klienckim.

Następnie ClickOnce sprawdza certyfikat Authenticode, który jest używany do podpisywania manifest aplikacji, który określa poziom zaufania, który udzieli ClickOnce.Ponieważ Adventure Works skonfigurował swoich klientów na dowolnej aplikacji, podpisanego przez firmę Microsoft trust, ta aplikacja ClickOnce przyznaje się pełne zaufanie.Aby uzyskać więcej informacji, zobacz Omówienie rozmieszczania aplikacji zaufanych.

Tworzenie wdrożeń klientów dla wcześniejszych wersji

Co zrobić, jeśli programista jest wdrażanie aplikacji ClickOnce klientom, którzy są przy użyciu starszych wersji.NET Framework?Poniższe sekcje podsumowanie kilka zalecanych rozwiązań, wraz z korzyści i niedogodności wynikających z każdego.

Bb384248.collapse_all(pl-pl,VS.110).gifZnak wdrożeń w imieniu klienta

Jeden strategii wdrażania możliwe jest dla deweloperów do tworzenia mechanizm do podpisania wdrożeń w imieniu swoich klientów przy użyciu klucza prywatnego przez klienta.Zapobiega to konieczności zarządzania kluczami prywatnymi lub wielu pakietów rozmieszczania autora.Projektant tylko dostarcza wdrażania tych samych do każdego klienta.Jest do klienta, aby dostosować ją do ich środowiska za pomocą usługi podpisywania.

Wadą tej metody jest czasu i kosztów, które są wymagane do wdrożenia.Podczas takich usług może być budowany za pomocą narzędzi dostępnych w.NET Framework SDK, to spowoduje dodanie więcej czasu rozwoju cyklu życia produktu.

Jak wspomniano wcześniej w tym temacie, kolejną wadą jest wersją każdego klienta aplikacji będą tej samej tożsamości aplikacji, które mogłyby prowadzić do konfliktów.Jeśli jest to niepożądane, autora, można zmienić pola Nazwa, która jest używana podczas generowania manifestu wdrażania, aby nadać unikatową nazwę każdej aplikacji.To będzie utworzyć oddzielną tożsamość dla każdej wersji aplikacji i wyeliminować potencjalne konflikty tożsamości.To pole odpowiada -Name argument dla Mage.exe i do Nazwa pola na Nazwa kartę w MageUI.exe.

Załóżmy na przykład, że deweloper została utworzona w aplikacji o nazwie Application1.Zamiast tworzyć pojedynczy wdrażania z pola Nazwa do Application1, autora można utworzyć kilka wdrożeń z wariacji specyficznych dla odbiorcy, dla tej nazwy, takie jak Application1-CustomerA, Application1-CustomerB i tak dalej.

Bb384248.collapse_all(pl-pl,VS.110).gifWdrażanie przy użyciu pakietu Instalatora

Drugi strategii wdrażania możliwe jest generowanie projektu Instalatora Microsoft do wykonywania wdrożenie wstępne stosowania ClickOnce.To może być podana w jednym z kilku różnych formatach: jako wdrażania MSI, jak plik wykonywalny Instalatora (.(EXE), lub jako plik typu cabinet (.cab), wraz ze skryptu wsadowego.

Ta technika autora dostarczą klienta wdrażania, który zawiera pliki aplikacji, manifest aplikacji i manifest wdrażania, który służy jako szablon.Klienta będzie uruchomić program instalacyjny, które byłyby monituj ich wdrażania adresu URL (serwera lub pliku w udostępnionej lokalizacji, z której użytkownicy będą instalować aplikacji ClickOnce), jak również certyfikat cyfrowy.Aplikacja może również wybrać opcję Monituj o dodatkowe opcje konfiguracji ClickOnce, takie jak interwał sprawdzania aktualizacji.Po te informacje są zbierane, program instalacyjny będzie generować manifestu real wdrażania, podpisują go i publikowania aplikacji ClickOnce do miejsca wyznaczonego serwera.

Istnieją trzy sposoby, że klient może podpisać manifestu wdrażania w tej sytuacji:

  1. Nabywcy można użyć ważny certyfikat wystawiony przez urząd certyfikacji (CA).

  2. Jako odmiana tego podejścia klienta można podpisać manifestu ich wdrażania przy użyciu certyfikatu z podpisem własnym.To wadą jest to, że spowoduje aplikacji, które mają być wyświetlane słowa "Nieznany wydawca", gdy użytkownik jest pytany, czy należy go zainstalować.Zapobiega tych mniejszych klientów, z konieczności poświęcania dodatkowego czasu i pieniędzy, wymagane dla certyfikatu wystawionego przez urząd certyfikacji jest jednak korzyści.

  3. Wreszcie deweloper może zawierać ich własnych certyfikatów z podpisem własnym w pakiecie instalacji.Wprowadza to potencjalne problemy z tożsamości aplikacji omówionych wcześniej w tym temacie.

Wadą metody instalacji wdrażania projektu jest czas i wydatki wymagane do utworzenia aplikacji niestandardowych wdrażania.

Bb384248.collapse_all(pl-pl,VS.110).gifMieć klienta wygenerować manifestu wdrażania

Trzeci strategii wdrażania możliwe jest ręką pliki aplikacji i manifest aplikacji wyłączone do klienta.W tym scenariuszu jest odpowiedzialny za pomocą klienta.NET Framework SDK do generowania i podpisywania manifestu wdrażania.

Wadą tej metody jest wymaganie zainstalować klienta.Narzędzia NET Framework SDK i autora lub administrator systemu, który jest wykwalifikowany przy ich użyciu.Niektórzy klienci mogą żądać roztworu, który wymaga niewielkiej lub żadnej wysiłku technicznego z ich strony.

Zobacz też

Zadania

Instruktaż: Ręcznie wdrażanie aplikacji ClickOnce

Instruktaż: Ręcznie wdrażanie aplikacji ClickOnce, które nie wymagają Re-Signing i że zachowuje informacje o znakowaniu

Koncepcje

Wdrażania ClickOnce aplikacji do testowania i serwerów produkcyjnych bez rezygnację