Instalowanie zestawów Win32 na potrzeby współużytkowania równoległego
Poniżej opisano sposób tworzenia pakietu Instalatora Windows w celu zainstalowania zestawu Win32. Pakiet instaluje zestaw równoległy w folderze Winsxs na potrzeby współużytkowanego użycia aplikacji. Po zainstalowaniu pakietu zestaw udostępniony jest globalnie dostępny dla dowolnej aplikacji, która określa zależność od zestawu w pliku manifestu zestawu. Instalator nie rejestruje globalnie zestawu współistniejącego w systemie.
Należy pamiętać, że można zainstalować współużytkowane zestawy równoległe, korzystając z modułów scalających .
Przed kontynuowaniem należy zrozumieć, jak utworzyć pakiet Instalatora Windows bez zestawów. Aby zapoznać się z przykładem tworzenia prostej instalacji, zobacz przykład instalacji.
Aby zainstalować zestaw udostępniony równocześnie
- Zdefiniuj składnik Instalatora Windows zawierający zestaw Win32. Ten składnik może zawierać inne zasoby, które powinny być zawsze instalowane lub usuwane z zestawu. Wszystkie pozostałe składniki aplikacji można tworzyć tak samo jak w przypadku instalacji bez zestawów. Dodaj wiersz do tabeli składników dla składnika zawierającego zestaw Win32. Wprowadź prawidłowy identyfikator GUID instalatora Windows dla tego komponentu. Nie należy używać pliku manifestu jako ścieżki klucza dla tego składnika.
- Dodaj wiersz do tabeli FeatureComponents, powiązując składnik z funkcją Instalatora Windows. Aby uzyskać więcej informacji, zobacz Components and Features. Funkcja Instalatora Windows powinna być elementem funkcji aplikacji rozpoznawalnej dla użytkownika. Zestaw jest aktywowany, gdy ta funkcja zostanie wybrana przez użytkownika lub zainicjowana przez awarię w aplikacji. Jeśli zestaw definiuje dodatkową funkcję, dodaj dodatkowy wiersz do tabeli Feature dla atrybutów funkcji. Ten krok nie jest wymagany podczas tworzenia modułu scalania.
- W przypadku zespołów równoległych, informacje o powiązaniu i aktywacji, takie jak klasy COM, interfejsy i biblioteki typów, są przechowywane w plikach manifestu, a nie w rejestrze. Udostępnione zestawy przechowują te informacje w manifeście zestawu. W systemach, które obsługują zestawy równoległe, instalator pomija przetwarzanie wszelkich informacji o składniku wprowadzonych w tabela rozszerzeń , tabela czasowników , tabela TypeLib , tabela MIME , tabela klas , tabela ProgId i tabela AppId . Informacje o powiązaniu i aktywacji można wprowadzić w tych tabelach do użytku przez systemy, które nie obsługują udostępniania zestawów równoległych.
- Instalacja równoległa nie rejestruje globalnie zestawu, instalator pomija samodzielne rejestrowanie składnika, jeśli jakiekolwiek informacje o samodzielnej rejestracji zostały wprowadzone do tabeli SelfReg. Informacje o samodzielnej rejestracji można wprowadzić w tabeli SelfReg na potrzeby samodzielnej rejestracji składnika w systemach, które nie obsługują udostępniania zestawów równoległych.
- Dodaj wszelkie inne informacje dotyczące rejestru, z wyłączeniem powiązania i aktywacji lub samorejestracji składnika, do tabeli Rejestr , tabeli RemoveRegistry i tabeli Środowisko .
- Ponieważ jest to zestaw udostępniony, nie generuje pliku lokalnego. Nie dołączaj informacji dla tego składnika w tabeli IsolatedComponent. Instalator pomija tabelę IsolatedComponent dla tego składnika w systemach operacyjnych obsługujących współużytkowanie równoległe. Dodaj informacje do tabeli IsolatedComponent, jeśli zestaw ma być prywatny w systemach obsługujących pliki lokalne.
- Aby umożliwić współużytkowanie równoległe, zestaw Win32 musi być zainstalowany w folderze Winsxs. Jest to realizowane przez pozostawienie kolumny File_Application tabeli MsiAssembly null dla zestawu. Spowoduje to, że instalator zainstaluje zestaw w folderze WinSxS zamiast do folderu składnika. Dodaj wiersz do tabeli MsiAssembly dla składnika, który zawiera zestaw Win32. Wprowadź wartość 1 w polu Atrybuty tabeli MsiAssembly, aby określić, że jest to zestaw Win32. W przypadku zestawu udostępnionego pozostaw puste pole File_Application. Dodaj akcję MsiPublishAssemblies do tabeli InstallExecuteSequence lub do tabeli AdvtExecuteSequence. Dodaj akcję MsiUnpublishAssemblies do tabeli InstallExecuteSequence.
- Dodaj wiersze do tabeli MsiAssemblyName dla składnika. Dodaj jeden wiersz dla każdej pary nazw i wartości określonej w sekcji assemblyIdentity manifestu. Aby zapoznać się z przykładem, zobacz tabeli MsiAssemblyName.