Wytyczne dotyczące tworzenia składników pod kątem wykonywania równoczesnego

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ównoległego, należy podać wszystkie zestawy 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 globalnej pamięci podręcznej zestawów do udostępniania magazynu 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 programu .NET Framework. Zestawy zainstalowane w globalnej pamięci podręcznej zestawów nie są zastępowane po zainstalowaniu nowej wersji tego 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 na potrzeby wykonywania równoległego 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:

  • Zapisywanie 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 jednoczesnemu zastępowaniu informacji o dwóch aplikacjach lub składnikach uruchomionych w tym samym czasie.

  • Utwórz nazwane obiekty jądra specyficzne dla wersji, aby warunek wyścigu nie wystąpił. Na przykład stan wyścigu występuje, gdy dwa semafory z dwóch wersji tej samej aplikacji czekają na siebie nawzajem.

  • Należy pamiętać o nazwach plików i katalogów. 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. Ogólnie rzecz biorąc, należy zaktualizować wersję pliku nawet w przypadku aktualizacji w 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 też