Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
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.
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).
Zidentyfikuj właściciela manifestu. W poniższym przykładzie
myComAppwersja 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>Identyfikowanie zestawów zależnych. W poniższym przykładzie
myComAppzależy odmyManagedComp.<?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>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
Za pomocą edytora XML utwórz manifest składnika w celu opisania zarządzanego zestawu.
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>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ładziemyManagedCompwersja 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>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 clsidIdentyfikator określający klasę do aktywowania. Tak descriptionCiąg, który informuje użytkownika o składniku. Pusty ciąg jest domyślny. Nie. nameCiąg reprezentujący klasę zarządzaną. Tak progidIdentyfikator, który ma być używany do aktywacji powiązanej z opóźnieniem. Nie. threadingModelModel wątkowania COM. Wartość domyślna to "Oba". Nie. runtimeVersionOkreś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. tlbidIdentyfikator 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:
testClass1itestClass2.<?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>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
Utwórz skrypt zasobu zawierający następującą instrukcję:
1 RT_MANIFEST myManagedComp.manifestW tej instrukcji
myManagedComp.manifestjest nazwą osadzonego manifestu składnika. W tym przykładzie nazwa pliku skryptu tomyresource.rc.Skompiluj skrypt przy użyciu kompilatora zasobów systemu Microsoft Windows (Rc.exe). W wierszu polecenia wpisz następujące polecenie:
rc myresource.rcRc.exe tworzy
myresource.resplik zasobu.Skompiluj ponownie plik źródłowy zestawu i określ plik zasobu przy użyciu opcji /win32res :
/win32res:myresource.resmyresource.resPonownie jest nazwą pliku zasobu zawierającego zasoby osadzone.