Instalowanie podzespołów

Ted Pattison

Streszczenie: Ten artykuł z serii Basic Instincts jest drugim z kolei artykułem poświęconym pracy z podzespołami (assembly). W artykule z sierpnia 2003 (j. ang.) omówiłem cztery składowe nazwy podzespołu. Wyjaśniłem także technikę tworzenia podzespołu z numerem wersji i silną nazwą. W tym artykule omówię różne sposoby instalacji bibliotek DLL podzespołów w środowisku programistycznym i w środowisku produkcyjnym.
Długość dokumentu — około 11 stron drukowanych

Uwaga — do uruchomienia przykładowej aplikacji wymagany jest system operacyjny Microsoft Windows® z zainstalowaną platformą .NET Framework 1.0 SP2. Prezentowany w niniejszym artykule przykładowy kod, napisany w języku Visual Basic® .NET, utworzono i przetestowano w Visual Studio® 2002. Ponadto niezbędny będzie dostęp do instancji bazy danych SQL Server 2000 SP3 na komputerze posiadającym przynajmniej 3 megabajty przestrzeni dyskowej na przykładową bazę danych. Testy przeprowadzono przy użyciu lokalnej instancji SQL Server 2000 Personal Edition SP3 w systemie Windows XP Professional SP1.

Czteroczęściowa nazwa podzespołu nie zależy od lokalizacji podzespołu. Oznacza to, że nazwa podzespołu nie zawiera niczego, co mogłoby poinformować środowisko CLR lub aplikację, w której podzespół jest wykorzystywany, o lokalizacji pliku podzespołu. Daje to tak ważną elastyczność — bibliotekę podzespołu można zainstalować na kilka sposobów i w wielu różnych miejscach. Oznacza także, że podczas uruchamiania aplikacji środowisko CLR musi zlokalizować podzespół w inny sposób niż wyłącznie na podstawie nazwy podzespołu.

Można wyróżnić trzy podstawowe sposoby instalowania podzespołów na komputerze docelowym. Pierwszy sposób polega na zainstalowaniu biblioteki DLL jako podzespołu prywatnego poprzez umieszczenie jej w katalogu ApplicationBase. Druga technika polega na zainstalowaniu podzespołu w repozytorium wspólnym dla wszystkich aplikacji zainstalowanych na danym komputerze. Repozytorium tym jest Global Assembly Cache (GAC). Trzecim sposobem jest podanie ścieżki do pliku DLL podzespołu za pomocą elementu <codeBase>, co umożliwia pobranie biblioteki przez środowisko CLR z sieci, gdy aplikacja po raz pierwszy używa danego podzespołu.