Udostępnij za pomocą


Instrukcja: Jak skonfigurować składniki COM oparte na platformie .NET Framework do aktywacji bez rejestracji

Aktywacja składników bazujących na .NET Framework bez konieczności rejestracji jest tylko nieznacznie bardziej skomplikowana niż dla składników COM. Konfiguracja wymaga dwóch manifestów:

  • Aplikacje COM muszą mieć manifest aplikacji w stylu Win32, aby zidentyfikować składnik zarządzany.

  • Składniki oparte na platformie .NET Framework muszą mieć manifest składnika, który zawiera informacje potrzebne do aktywacji w czasie wykonywania.

W tym temacie opisano sposób kojarzenia manifestu aplikacji z aplikacją; skojarz manifest składnika ze składnikiem; i osadź manifest składnika w zestawie.

Tworzenie manifestu aplikacji

  1. Za pomocą edytora XML utwórz (lub zmodyfikuj) manifest aplikacji należący do aplikacji COM, która współdziała z co najmniej jednym składnikiem zarządzanym.

  2. Wstaw następujący standardowy nagłówek na początku pliku:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    </assembly>
    

    Aby uzyskać informacje o elementach manifestu i ich atrybutach, zobacz Application Manifests (Manifesty aplikacji).

  3. Zidentyfikuj właściciela manifestu. W poniższym przykładzie myComApp wersja 1 jest właścicielem pliku manifestu.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
      <assemblyIdentity type="win32"
                        name="myOrganization.myDivision.myComApp"
                        version="1.0.0.0"
                        processorArchitecture="msil"
      />
    </assembly>
    
  4. Identyfikowanie zestawów zależnych. W poniższym przykładzie myComApp zależy od myManagedComp.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
      <assemblyIdentity type="win32"
                        name="myOrganization.myDivision.myComApp"
                        version="1.0.0.0"
                        processorArchitecture="x86"
                        publicKeyToken="8275b28176rcbbef"
      />
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type="win32"
                        name="myOrganization.myDivision.myManagedComp"
                        version="6.0.0.0"
                        processorArchitecture="X86"
                        publicKeyToken="8275b28176rcbbef"
          />
        </dependentAssembly>
      </dependency>
    </assembly>
    
  5. Zapisz i nadaj plikowi manifestu nazwę. Nazwa manifestu aplikacji to nazwa pliku wykonywalnego, po której następuje rozszerzenie .manifest. Na przykład nazwa pliku manifestu aplikacji dla myComApp.exe to myComApp.exe.manifest.

Manifest aplikacji można zainstalować w tym samym katalogu co aplikacja COM. Alternatywnie możesz dodać go jako zasób do pliku .exe aplikacji. Aby uzyskać więcej informacji, zobacz About Side-by-Side Assemblies (Informacje o zestawach równoległych).

Utworzyć manifest składnika

  1. Za pomocą edytora XML utwórz manifest składnika w celu opisania zarządzanego zestawu.

  2. Wstaw następujący standardowy nagłówek na początku pliku:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    </assembly>
    
  3. Zidentyfikuj właściciela pliku. Element <assemblyIdentity> elementu w pliku manifestu <dependentAssembly> aplikacji musi być zgodny z elementem w manifeście składnika. W poniższym przykładzie myManagedComp wersja 1.2.3.4 jest właścicielem pliku manifestu.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
           <assemblyIdentity
                        name="myOrganization.myDivision.myManagedComp"
                        version="1.2.3.4"
                        publicKeyToken="8275b28176rcbbef"
                        processorArchitecture="msil"
           />
    </assembly>
    
  4. Zidentyfikuj każdą klasę w zespole. Użyj elementu , <clrClass> aby unikatowo zidentyfikować każdą klasę w zarządzanym zestawie. Element, który jest podelementem <assembly> elementu, ma atrybuty opisane w poniższej tabeli.

    Attribute Description Wymagane
    clsid Identyfikator określający klasę do aktywowania. Tak
    description Ciąg, który informuje użytkownika o składniku. Pusty ciąg jest domyślny. Nie.
    name Ciąg reprezentujący klasę zarządzaną. Tak
    progid Identyfikator, który ma być używany do aktywacji powiązanej z opóźnieniem. Nie.
    threadingModel Model wątkowania COM. Wartość domyślna to "Oba". Nie.
    runtimeVersion Określa wersję środowiska uruchomieniowego języka wspólnego (CLR) do użycia. Jeśli nie określisz tego atrybutu, a CLR nie jest jeszcze załadowany, składnik zostanie załadowany z najnowszą zainstalowaną wersją CLR przed wersją 4. Jeśli określisz wersję 1.0.3705, 1.1.4322 lub 2.0.50727, wersja zostanie automatycznie zaktualizowana do najnowszej zainstalowanej wersji CLR wcześniejszej niż wersja 4 (zazwyczaj do wersji 2.0.50727). Jeśli jest już załadowana inna wersja CLR, a określona wersja może zostać załadowana równolegle w tym samym procesie, zostanie załadowana określona wersja; w przeciwnym razie jest używana załadowana wersja CLR. Może to spowodować niepowodzenie ładowania. Nie.
    tlbid Identyfikator biblioteki typów, która zawiera informacje o typie klasy. Nie.

    Wszystkie tagi atrybutów rozróżniają wielkość liter. Identyfikatory CLSID, ProgID, modele wątkowania i wersję środowiska uruchomieniowego można uzyskać przez wyświetlenie wyeksportowanej biblioteki typów dla zestawu za pomocą programu OLE/COM ObjectViewer (Oleview.exe).

    Poniższy manifest składnika identyfikuje dwie klasy: testClass1 i testClass2.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
           <assemblyIdentity
                        name="myOrganization.myDivision.myManagedComp"
                        version="1.2.3.4"
                        publicKeyToken="8275b28176rcbbef"
           />
           <clrClass
                        clsid="{65722BE6-3449-4628-ABD3-74B6864F9739}"
                        progid="myManagedComp.testClass1"
                        threadingModel="Both"
                        name="myManagedComp.testClass1"
                        runtimeVersion="v1.0.3705">
           </clrClass>
           <clrClass
                        clsid="{367221D6-3559-3328-ABD3-45B6825F9732}"
                        progid="myManagedComp.testClass2"
                        threadingModel="Both"
                        name="myManagedComp.testClass2"
                        runtimeVersion="v1.0.3705">
           </clrClass>
           <file name="MyManagedComp.dll">
           </file>
    </assembly>
    
  5. Zapisz i nadaj plikowi manifestu nazwę. Nazwa manifestu składnika to nazwa biblioteki asemblera z rozszerzeniem .manifest. Na przykład myManagedComp.dll jest reprezentowany jako myManagedComp.manifest.

Manifest składnika należy osadzić jako zasób w zestawie.

Aby osadzić manifest składnika w zestawie zarządzanym

  1. Utwórz skrypt zasobu zawierający następującą instrukcję:

    1 RT_MANIFEST myManagedComp.manifest

    W tej instrukcji myManagedComp.manifest jest nazwą osadzonego manifestu składnika. W tym przykładzie nazwa pliku skryptu to myresource.rc.

  2. Skompiluj skrypt przy użyciu kompilatora zasobów systemu Microsoft Windows (Rc.exe). W wierszu polecenia wpisz następujące polecenie:

    rc myresource.rc

    Rc.exe tworzy myresource.res plik zasobu.

  3. Skompiluj ponownie plik źródłowy zestawu i określ plik zasobu przy użyciu opcji /win32res :

    /win32res:myresource.res

    myresource.res Ponownie jest nazwą pliku zasobu zawierającego zasoby osadzone.

Zobacz także