Udostępnij za pośrednictwem


Wskazówki dotyczące tworzenia składników do jednoczesnego uruchamiania

Uwaga / Notatka

Ten artykuł jest specyficzny dla programu .NET Framework. Nie ma zastosowania do nowszych implementacji platformy .NET, w tym .NET 6 i nowszych wersji.

Postępuj zgodnie z tymi ogólnymi wytycznymi, aby utworzyć aplikacje zarządzane lub składniki przeznaczone do wykonywania równoległego:

  • Powiązanie tożsamości typu z określoną wersją pliku.

    Środowisko uruchomieniowe języka wspólnego wiąże tożsamość typu z określoną wersją pliku przy użyciu zestawów o silnych nazwach. Aby utworzyć aplikację lub składnik na potrzeby wykonywania równocznego, należy nadać wszystkim zestawom silną nazwę. Spowoduje to utworzenie precyzyjnej tożsamości typu i gwarantuje, że dowolne rozwiązanie typu jest kierowane do poprawnego pliku. Zestaw o silnej nazwie zawiera informacje o wersji, kulturze i wydawcy używane przez środowisko uruchomieniowe do zlokalizowania poprawnego pliku w celu spełnienia żądania powiązania.

  • Użyj magazynu z obsługą wersji.

    Środowisko uruchomieniowe używa globalnego konta zestawów do przechowywania danych z obsługą wersji. Globalna pamięć podręczna zestawów to struktura katalogów z obsługą wersji zainstalowana na każdym komputerze korzystającym z .NET Framework. Zestawy zainstalowane w globalnej pamięci podręcznej nie są zastępowane, gdy zainstalowana zostanie nowa wersja danego zestawu.

  • Utwórz aplikację lub składnik, który działa w izolacji.

    Aplikacja lub składnik działający w izolacji musi zarządzać zasobami, aby uniknąć konfliktów, gdy dwa wystąpienia aplikacji lub składnika są uruchomione jednocześnie. Aplikacja lub składnik musi również używać struktury plików specyficznej dla wersji.

Izolacja aplikacji i składników

Jednym z kluczy do pomyślnego projektowania aplikacji lub składnika do równoległego działania jest izolacja. Aplikacja lub składnik musi zarządzać wszystkimi zasobami, szczególnie we/wy plików, w izolowany sposób. Postępuj zgodnie z poniższymi wytycznymi, aby upewnić się, że aplikacja lub składnik działa w izolacji:

  • Zapisz w rejestrze w sposób specyficzny dla wersji. Przechowuj wartości w gałęziach lub kluczach wskazujących wersję i nie udostępniaj informacji ani stanu w różnych wersjach składnika. Zapobiega to nadpisywaniu informacji przez dwie aplikacje lub składniki działające jednocześnie.

  • Uczynienie nazwanych obiektów jądra specyficznymi dla wersji pozwala uniknąć występowania sytuacji wyścigu. Na przykład stan wyścigu występuje, gdy dwa semafory z dwóch wersji tej samej aplikacji czekają na siebie nawzajem.

  • Zadbaj o to, aby nazwy plików i katalogów uwzględniały wersjonowanie. Oznacza to, że struktury plików powinny polegać na informacjach o wersji.

  • Utwórz konta użytkowników i grupy w sposób specyficzny dla wersji. Konta użytkowników i grupy utworzone przez aplikację powinny być identyfikowane przez wersję. Nie udostępniaj kont użytkowników i grup między wersjami aplikacji.

Instalowanie i odinstalowywanie wersji

Podczas projektowania aplikacji na potrzeby wykonywania równoległego postępuj zgodnie z poniższymi wytycznymi dotyczącymi instalowania i odinstalowywania wersji:

  • Nie usuwaj informacji z rejestru, które mogą być potrzebne przez inne aplikacje działające w innej wersji programu .NET Framework.

  • Nie zastąp informacji w rejestrze, które mogą być potrzebne przez inne aplikacje działające w innej wersji programu .NET Framework.

  • Nie wyrejestruj składników COM, które mogą być potrzebne przez inne aplikacje działające w innej wersji programu .NET Framework.

  • Nie należy zmieniać wpisów rejestru InprocServer32 ani innych wpisów rejestru dla serwera COM, który został już zarejestrowany.

  • Nie usuwaj kont użytkowników ani grup, które mogą być potrzebne przez inne aplikacje działające w innej wersji programu .NET Framework.

  • Nie należy dodawać niczego do rejestru zawierającego niewersjętowaną ścieżkę.

Numer wersji pliku i numer wersji zestawu

Wersja pliku to zasób wersji Win32, który nie jest używany przez środowisko uruchomieniowe. Zwykle należy zaktualizować wersję pliku nawet w przypadku aktualizacji na miejscu. Dwa identyczne pliki mogą mieć różne informacje o wersji pliku, a dwa różne pliki mogą mieć te same informacje o wersji pliku.

Wersja zestawu jest używana przez środowisko uruchomieniowe na potrzeby powiązania zestawu. Dwa identyczne zestawy z różnymi numerami wersji są traktowane jako dwa różne zestawy przez środowisko uruchomieniowe.

Narzędzie globalnej pamięci podręcznej zestawów (Gacutil.exe) umożliwia zamianę zestawu, gdy tylko numer wersji pliku jest nowszy. Instalator zazwyczaj nie instaluje się w zestawie, chyba że numer wersji zestawu jest większy.

Zobacz także