Rozwiązywanie problemów z zestawami w czasie projektowania

Po dodaniu odwołania do zestawu za pomocą karty .NET okna dialogowego Dodawanie odwołania punkt odniesienia do pośredniego zestawu odwołania, czyli zestawu zawierającego wszystkie informacje o typie i podpisie, ale nie musi zawierać żadnego kodu. Karta .NET zawiera listę zestawów odwołań odpowiadających zestawom środowiska uruchomieniowego w programie .NET Framework. Ponadto zawiera listę zestawów odwołań odpowiadających zestawom środowiska uruchomieniowego w zarejestrowanych folderach AssemblyFoldersEx używanych przez inne firmy.

Wielowersyjność

Program Visual Studio umożliwia określanie wersji programu .NET Framework uruchamianych w wielu wersjach programu .NET Framework. Po wydaniu nowej wersji programu .NET Framework można zainstalować program Framework przy użyciu pakietu określania wartości docelowej i będzie automatycznie wyświetlany jako element docelowy w programie Visual Studio.

Jak działa rozpoznawanie typów

W czasie wykonywania CLR rozpoznaje typy w zestawie, patrząc w GAC, katalogu bin i we wszystkich ścieżkach sondowania. Jest to obsługiwane przez moduł ładujący fusion. Ale skąd moduł ładujący fusion wie czego szukać? Zależy to od rozwiązania wykonanego w czasie projektowania, gdy aplikacja zostanie skompilowana.

Podczas kompilacji, kompilator rozwiązuje typy aplikacji używając zestawów odwołania. W programie .NET Framework w wersji 2.0, 3.0, 3.5, 4, 4.5 i 4.5.1 zestawy referencyjne są instalowane podczas instalowania programu .NET Framework.

Zestawy odwołania są dostarczane przez pakiet docelowy, który jest dostarczany z odpowiednią wersją .NET Framework SDK. Framework sam w sobie dostarcza tylko zestawy środowiska uruchomieniowego. W celu skompilowania aplikacji należy zainstalować zarówno .NET Framework jak i odpowiadające mu .NET Framework SDK.

W przypadku elementem docelowym jest konkretny .NET Framework, system kompilacji rozpoznaje wszystkie typy używając zestawów odwołań w pakiecie docelowym. W czasie wykonywania moduł ładujący fusion rozwiązuje te same typy zestawów środowiska uruchomieniowego, które są zwykle zlokalizowane w GAC.

Jeśli zestawy odwołań nie są dostępne, wtedy system kompilacji rozwiązuje typy zestawów używając zestawów środowiska uruchomieniowego. Ponieważ zestawy środowiska uruchomieniowego w GAC nie są rozróżniane przez numery wersji pomocniczych, możliwe, że rozwiązanie zostanie wykonane w niewłaściwym zestawie. Może się to zdarzyć gdy na przykład istnieje odwołanie do nowej metody wprowadzonej w .NET Framework w wersji 3.5 podczas gdy wersją docelową jest 3.0 Kompilacja zostanie wykonana pomyślnie, a aplikacja będzie działać na komputerze kompilacji, ale nie będzie działać na komputerze, na którym nie ma zainstalowanej wersji 3.5.

Pakiet docelowy, który jest teraz dostarczany z zestawem SDK programu .NET Framework, zawiera listę wszystkich zestawów środowiska uruchomieniowego w tej wersji programu Framework, nazywanej listą redystrybucji (redystrybucji), co uniemożliwia systemowi kompilacji rozpoznawanie typów w niewłaściwej wersji zestawu.