Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Nazwa zestawu jest przechowywana w metadanych i ma znaczący wpływ na zakres zestawu i jego użycie przez aplikację. Zestaw o silnej nazwie ma w pełni kwalifikowaną nazwę, która zawiera nazwę zestawu, kulturę, klucz publiczny, numer wersji i, opcjonalnie, architekturę procesora. FullName Użyj właściwości , aby uzyskać w pełni kwalifikowaną nazwę, często nazywaną nazwą wyświetlaną, dla załadowanych zestawów.
Środowisko uruchomieniowe używa informacji o nazwie, aby zlokalizować zestaw i odróżnić go od innych zestawów o tej samej nazwie. Na przykład zestaw myTypes
o silnej nazwie może mieć następującą w pełni kwalifikowaną nazwę:
myTypes, Version=1.0.1234.0, Culture=en-US, PublicKeyToken=b77a5c561934e089c, ProcessorArchitecture=msil
W tym przykładzie w pełni kwalifikowana nazwa wskazuje, że myTypes
zestaw ma silną nazwę z tokenem klucza publicznego, ma wartość kultury dla języka angielskiego Stanów Zjednoczonych i ma numer wersji 1.0.1234.0. Jego architektura procesora to msil
, co oznacza, że będzie kompilowany w trybie just in time (JIT) do 32-bitowego kodu lub 64-bitowego kodu w zależności od systemu operacyjnego i procesora.
Wskazówka
Informacje ProcessorArchitecture
umożliwiają korzystanie z wersji zestawów specyficznych dla procesora. Można tworzyć wersje zestawu, których tożsamość różni się tylko w zależności od architektury procesora, na przykład 32-bitowej i 64-bitowej wersji procesora. Architektura procesora nie jest wymagana dla silnych nazw. Aby uzyskać więcej informacji, zobacz AssemblyName.ProcessorArchitecture.
Kod, który żąda typów w zestawie, musi używać w pełni kwalifikowanej nazwy zestawu. Jest to nazywane w pełni zdefiniowanym powiązaniem. Powiązanie częściowe, które określa tylko nazwę zestawu, nie jest dozwolone podczas odwoływania się do zestawów w programie .NET Framework.
Wszystkie odwołania do zestawów tworzących program .NET Framework muszą również zawierać w pełni kwalifikowaną nazwę zestawu. Na przykład odwołanie do zestawu System.Data .NET Framework w wersji 1.0 obejmuje:
System.data, version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Wersja odpowiada numerowi wersji wszystkich zestawów .NET Framework dostarczanych z programem .NET Framework w wersji 1.0. W przypadku zestawów programu .NET Framework wartość kultury jest zawsze neutralna, a klucz publiczny jest taki sam, jak pokazano w powyższym przykładzie.
Aby na przykład dodać odwołanie do zestawu w pliku konfiguracji w celu skonfigurowania odbiornika śledzenia, należy uwzględnić w pełni kwalifikowaną nazwę zestawu .NET Framework systemu:
<add name="myListener" type="System.Diagnostics.TextWriterTraceListener, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="c:\myListener.log" />
Uwaga / Notatka
Środowisko uruchomieniowe traktuje nazwy zestawów jako ignorujące wielkość liter podczas wiązania z zestawem, ale zachowuje wielkość liter w nazwie zestawu. Kilka narzędzi w zestawie Windows SDK traktuje nazwy zestawów jako rozróżniające wielkość liter. Aby uzyskać najlepsze wyniki, zarządzaj nazwami zestawów, uwzględniając wielkość liter.
Nazwij składniki aplikacji
Środowisko uruchomieniowe nie uwzględnia nazwy pliku podczas określania tożsamości zestawu. Tożsamość zestawu, która składa się z nazwy zestawu, wersji, kultury i silnej nazwy, musi być jasna dla środowiska uruchomieniowego.
Jeśli na przykład masz zestaw o nazwie myAssembly.exe , który odwołuje się do zestawu o nazwie myAssembly.dll, powiązanie występuje poprawnie, jeśli wykonasz myAssembly.exe. Jeśli jednak inna aplikacja wykonuje myAssembly.exe przy użyciu metody AppDomain.ExecuteAssembly, środowisko uruchomieniowe określi, że myAssembly
jest już załadowane, gdy myAssembly.exe prosi o powiązanie z myAssembly
. W takim przypadku myAssembly.dll nigdy nie jest ładowany. Ponieważ myAssembly.exe nie zawiera żądanego typu, TypeLoadException występuje.
Aby uniknąć tego problemu, upewnij się, że zestawy tworzące aplikację nie mają tej samej nazwy zestawu lub umieszczają zestawy o tej samej nazwie w różnych katalogach.
Uwaga / Notatka
Jeśli w programie .NET Framework umieścisz zestaw o silnej nazwie w globalnej pamięci podręcznej zestawów, nazwa pliku zestawu musi być zgodna z nazwą zestawu, pomijając rozszerzenie nazwy pliku, takim jak .exe lub .dll. Jeśli na przykład nazwa pliku zestawu to myAssembly.dll, nazwa zestawu musi mieć wartość myAssembly
. Zestawy prywatne wdrożone tylko w katalogu głównym aplikacji mogą mieć nazwę zestawu inną niż nazwa pliku.