Wdrażanie składników COM ClickOnce

Wdrażanie starsze składniki COM został tradycyjnie trudnym zadaniem.Składniki globalnie należy zarejestrować i tym samym może spowodować niepożądane skutki uboczne między aplikacjami nakładających się.Taka sytuacja nie jest ogólnie problem w.NET wniosków w ramach, ponieważ składniki są całkowicie odizolowane do aplikacji lub zgodny side-by-side.Visual Studio umożliwia wdrażanie odizolowane składniki COM z systemu Windows XP lub system operacyjny wyższe.

ClickOncezapewnia łatwe i bezpieczne mechanizm wdrażania programu.NET firmy Microsoft.Jednakże jeżeli aplikacji są używane starsze składniki COM, należy podjąć dodatkowe kroki w celu ich wdrożeniem.W tym temacie opisano sposób wdrożyć odizolowane składniki COM i odwołać składników macierzystych (na przykład z programu Visual Basic 6.0 lub Visual C++).

Aby uzyskać więcej informacji na temat wdrażania odizolowane składników COM, zobacz "Wdrażanie aplikacji Uprość z ClickOnce i wolne od rejestracji COM" na https://msdn.microsoft.com/msdnmag/issues/05/04/RegFreeCOM/default.aspx.

Wolne rejestracji COM

Wolne rejestracji COM jest nowych technologii, wdrażanie i aktywowanie składników COM odizolowane.Działa przez umieszczenie składnika w biblioteki typów i informacje rejestracyjne, które jest instalowane do rejestru systemu, do pliku XML o nazwie manifestu, przechowywane w tym samym folderze co aplikacja.

Izolowanie składnik COM wymaga on być zarejestrowany na komputerze dewelopera, ale nie musi być zarejestrowany w komputerze użytkownika końcowego.Do izolowania składnik COM, wszystkie należy wykonać ustawiono jej odniesienia izolowany właściwość, aby True.Domyślnie ta właściwość jest ustawiona na False, wskazując, że powinny być traktowane jako odwołanie COM zarejestrowanych.Jeśli ta właściwość jest True, powoduje manifestu ma być generowana dla tego składnika w czasie kompilacji.Powoduje ona również odpowiadające im pliki mają być kopiowane do folderu aplikacji podczas instalacji.

Gdy manifestu generator napotka odwołanie COM odizolowane, wylicza wszystkie CoClass wpisów w bibliotece typów składnika, dopasowywanie każdego wpisu z jej odpowiednie dane rejestracyjne i generowania manifest definicji dla wszystkich klas COM w pliku biblioteki typów.

Wdrażanie wolne rejestracji składników COM za pomocą ClickOnce

ClickOncewdrażania technologii jest służącej do wdrażania odizolowane składników COM, ponieważ oba ClickOnce i wolne rejestracji COM wymaga, aby wdrożyć składnik że manifestu.

Zazwyczaj Autor składnik powinien zapewnić manifestu.Jeśli nie, jednak jest zdolny do tworzenia manifestu automatycznie dla składnika modelu COM programu Visual Studio.Generowanie manifestu jest wykonywane podczas ClickOnce opublikować procesu; Aby uzyskać więcej informacji, zobacz Publikowanie aplikacji ClickOnce.Ta funkcja umożliwia również korzystanie z starsze składniki, które utworzone w starszych środowiskach programistycznych, takich jak Visual Basic 6.0.

Istnieją dwa sposoby, ClickOnce wdraża składniki COM:

  • Użyj program inicjujący, aby wdrożyć składniki COM; to działa na wszystkich obsługiwanych platformach.

  • Za pomocą składnika macierzystym izolacji (znany również jako wolne od rejestracji COM) wdrażania.Jednakże to będzie działać tylko na system Windows XP lub system operacyjny wyższe.

ms165432.collapse_all(pl-pl,VS.110).gifPrzykład izolowanie i wdrażanie prosty składnik COM

W celu wykazania wolne rejestracji wdrażania składnika COM, w tym przykładzie będzie Tworzenie aplikacji opartych na systemie Windows w języku Visual Basic, odwołujący się do izolowanych macierzystym składnika COM utworzony za pomocą programu Visual Basic 6.0 i wdrożyć go za pomocą ClickOnce.

Najpierw należy utworzyć składnik COM macierzystych:

Aby utworzyć składnik COM macierzystego

  1. Przy użyciu programu Visual Basic 6.0 z pliku menu, kliknij przycisk Nowy, następnie Projekt.

  2. W Nowy projekt okno dialogowe Wybierz programu Visual Basic węzeł i wybierz ActiveX DLL projektu.W Nazwa wpisz VB6Hello.

    [!UWAGA]

    Tylko typy projektów ActiveX DLL i formant ActiveX są obsługiwane przez wolne rejestracji COM; Typy projektów EXE formantu ActiveX i dokument ActiveX nie są obsługiwane.

  3. W Solution Explorer, kliknij dwukrotnie Class1.vb , aby otworzyć Edytor tekstu.

  4. W Class1.vb, należy dodać poniższy kod po wygenerowany kod dla New metody:

    Public Sub SayHello()
       MsgBox "Message from the VB6Hello COM component"
    End Sub
    
  5. Utwórz składnik.Z budować menu, kliknij przycisk Roztwór budować.

[!UWAGA]

Wolne rejestracji COM obsługuje tylko biblioteki DLL i COM kontroluje typy projektów.Exe nie można używać z wolnego rejestracji modelu COM.

Teraz można utworzyć aplikacji opartych na systemie Windows i Dodaj odwołanie do składnika modelu COM do niego.

Do tworzenia aplikacji opartych na systemie Windows za pomocą składnika COM

  1. Przy użyciu języka Visual Basic z pliku menu, kliknij przycisk Nowy, następnie Projekt.

  2. W Nowy projekt okno dialogowe Wybierz programu Visual Basic węzeł i wybierz Aplikacji Windows.W Nazwa wpisz RegFreeComDemo.

  3. W Solution Explorer, kliknij przycisk Pokaż wszystkie pliki przycisk, aby wyświetlić odwołania projektu.

  4. Kliknij prawym przyciskiem myszy odniesienia węzeł i wybierz Dodaj odwołanie z menu kontekstowego.

  5. W Dodaj odwołanie okno dialogowe, kliknij przycisk Przeglądaj , przejdź do VB6Hello.dll, a następnie zaznacz go.

    A VB6Hello odniesienia znajduje się na liście odwołań.

  6. Wskaż Przybornik, wybierz opcję przycisku kontroli i przeciągnij go do formularz Form1 formularza.

  7. W Właściwości okno, ustawić przycisk tekst właściwość na powitania.

  8. Kliknij dwukrotnie przycisk, aby dodać kod obsługi, a w pliku kod dodać kod, tak aby program obsługi otrzymuje brzmienie:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim VbObj As New VB6Hello.Class1
        VbObj.SayHello()
    End Sub
    
  9. Uruchom aplikację.Z debugowania menu, kliknij przycisk Start Debugging.

Dalej konieczność izolowania kontroli.Każdy składnik COM, który używa aplikacji jest reprezentowana w projekcie jako odwołanie COM.Odniesienia te są widoczne w obszarze odniesienia węzeł w Solution Explorer okna.(Należy zauważyć, że można dodać odwołania, albo bezpośrednio za pomocą Dodaj odwołanie polecenia na Projekt menu, lub pośrednio przez przeciąganie formantu ActiveX na formularzu.)

Poniższe kroki pokazują jak izolować składników COM i opublikować zaktualizowaną aplikację zawierające odizolowane kontroli:

Aby wyizolować składnik COM

  1. W Solution Explorer, odniesienia węzła, zaznacz VB6Hello odniesienia.

  2. W Właściwości okna, należy zmienić wartość izolowany właściwość z False do True.

  3. Z budować menu, kliknij przycisk Roztwór budować.

Teraz, kiedy naciśnij klawisz F5, works aplikacji zgodnie z oczekiwaniami, ale obecnie jest uruchomiony w obszarze wolnych rejestracji modelu COM.Aby udowodnić, należy spróbować wyrejestrowywanie składników VB6Hello.dll i RegFreeComDemo1.exe poza programu Visual Studio IDE uruchomiony.Tym razem, gdy przycisk zostanie kliknięty, wciąż działa.Jeśli zmienisz nazwę tymczasowo manifest aplikacji, ponownie powiedzie.

[!UWAGA]

Aby symulować braku składnika COM, czasowego wyrejestrowywania go.Otwórz okno wiersza polecenia, należy przejść do folderu system wpisując cd /d %windir%\system32, następnie wyrejestrować składnik wpisując regsvr32 /u VB6Hello.dll.Zarejestruj go ponownie wpisując regsvr32 VB6Hello.dll.

Ostatnim krokiem jest publikowanie aplikacji za pomocą ClickOnce:

Aby opublikować aktualizację aplikacji izolowanych składnika COM

  1. Z budować menu, kliknij przycisk Opublikować RegFreeComDemo.

    Pojawi się Kreator publikowania.

  2. W Kreatorze publikowania określ lokalizację na dysku komputera lokalnego, gdzie można uzyskać dostęp i zbadać opublikowanych plików.

  3. Kliknij przycisk Zakończenie do publikowania aplikacji.

Jeśli zbadamy opublikowanych plików będzie Uwaga dołączono plik sysmon.ocx.Formant jest całkowicie odizolowane do tej aplikacji, co oznacza, że jeśli do komputera użytkownika końcowego innej aplikacji przy użyciu różnych wersji formantu, nie może to kolidować z tej aplikacji.

Odwoływanie się do macierzystych zestawów

Visual Studio obsługuje odwołania macierzystym programu Visual Basic 6.0 lub zespołów C++; takiego odniesienia są nazywane odwołaniami macierzystym.Można sprawdzić, czy odwołanie jest macierzystym, przez sprawdzenie, że jego Typ pliku właściwość jest ustawiona na macierzystego lub ActiveX.

Aby dodać odwołanie macierzystym, użyj Dodaj odwołanie polecenia, a następnie przejdź do manifestu.Niektóre składniki należy umieścić manifestu wewnątrz biblioteki DLL.W tym przypadku można po prostu wybierz bibliotekę DLL, sama i Visual Studio doda go jako odwołanie macierzystym, jeśli wykryje, że składnik zawiera wbudowanym manifestem.Visual Studio będzie także automatycznie obejmują wszystkie pliki zależne lub zespoły, wymienione w manifeście, jeśli są one w tym samym folderze, jako składnik, do którego istnieje odwołanie.

Izolacja formant COM ułatwia wdrażanie składników COM, które nie zostały jeszcze manifestów.Jednakże jeżeli składnik jest podany w manifeście, można bezpośrednio odwołać manifestu.W rzeczywistości, należy zawsze używać manifestu, dostarczone przez autora składnika, tam gdzie to możliwe, zamiast przy użyciu izolowany właściwości.

Ograniczenia wolne rejestracji wdrażania składnika modelu COM

Wolne rejestracji COM zawiera wyraźne korzyści za pośrednictwem tradycyjnych wdrażania techniki.Jednak istnieje kilka ograniczeń i ostrzeżenia, które należy również podkreślić.Największe ograniczenie jest, że działa ona tylko w systemie Windows XP lub wyższym.Wykonania COM wolne rejestracji wymaganych zmian w sposobie są ładowane składniki, podstawowy system operacyjny.Niestety nie istnieje żadne warstwy niskiego poziomu wsparcia wolne rejestracji modelu COM.

Nie każdy składnik jest kandydat odpowiednie dla wolnego rejestracji modelu COM.Składnik nie jest odpowiedni, jeśli spełniony jest dowolny z następujących czynności:

  • Składnik jest serwerem out of process.EXE serwery nie są obsługiwane; obsługiwane są tylko biblioteki DLL.

  • Składnik jest częścią systemu operacyjnego lub składnikiem systemu, takich jak XML, program Internet Explorer lub Microsoft Data Access Components (MDAC).Należy wykonać polityki redystrybucji autora składnika; Skontaktuj się z dostawcą.

  • Składnik jest częścią aplikacji, takich jak Microsoft Office.Na przykład nie należy próbować wyizolować modelu obiektów programu Microsoft Excel.Jest częścią pakietu Office, a tylko może służyć na komputerze z pełnego produktu Office zainstalowany.

  • Składnik jest przeznaczone do stosowania jako dodatek lub przystawki, na przykład dodatek Office lub kontroli w przeglądarce sieci Web.Takie składniki zwykle wymagają pewnego rodzaju systemu rejestracji zdefiniowane przez środowisko hostingu, który wykracza poza zakres manifestu, sam.

  • Składnik zarządza fizycznego lub wirtualnego urządzenia do systemu, na przykład sterownik urządzenia Bufor wydruku.

  • Składnik jest do dystrybucji dostępu do danych.Dane aplikacji wymagają oddzielnego dostępu do danych pakietu redystrybucyjnego instalowane, zanim mogą uruchamiać.Nie należy próbować izolować składników, takich jak Microsoft ADO danych formantu, program Microsoft OLE DB lub Microsoft Data Access Components (MDAC).Zamiast tego Jeśli aplikacja używa składników MDAC lub SQL Server Express, należy ustawić je jako warunki wstępne; see Jak: Instalowanie wstępne z aplikacją ClickOnce.

W niektórych przypadkach może być możliwe dla dewelopera składnika przeprojektowanie go do wolnego rejestracji modelu COM.Nie jest to możliwe, można nadal tworzenia i publikowania aplikacji, które zależą je poprzez system rejestracji standardowej przy użyciu program inicjujący.Aby uzyskać więcej informacji, zobacz Tworzenie pakietów program inicjujący.

Składnik COM może być tylko jeden raz odizolowane, na wniosek.Na przykład, nie można wyizolować ten sam składnik COM z dwóch różnych Biblioteka klas projektów, które są częścią tej samej aplikacji.Ten sposób spowoduje ostrzeżenie kompilacji i aplikacja nie zostanie do ładowania w czasie wykonywania.Aby uniknąć tego problemu, firma Microsoft zaleca, że można upakować składników COM w bibliotece jednej klasie.

Istnieje kilka scenariuszy, w których COM wymagana jest rejestracja na komputerze dewelopera, mimo że wdrażanie aplikacji nie wymagają rejestracji.Isolated Właściwość wymaga składnika COM być zarejestrowane na komputerze dewelopera do automatycznego generowania manifest podczas kompilacji.Istnieją nie możliwości przechwytywania rejestracji, które wywołać rejestracji automatycznej podczas kompilacji.Ponadto wszystkich klas, które nie są jawnie zdefiniowane w bibliotece typów nie będą odzwierciedlane w manifeście.Podczas używania składnika modelu COM z istniejącym manifestu, takich jak native odniesienia, składnik nie może być konieczne w celu zarejestrowania się w czasie rozwoju.Jednakże, rejestracja jest wymagana, jeśli składnik jest formant ActiveX i mają zostać uwzględnione w Przybornik i Projektant Windows Forms.

Zobacz też

Koncepcje

ClickOnce zabezpieczeń i wdrażania