按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
look at my passport。 The passport approach works; but it has a long; ugly number that is hard
to remember。
The assembly name Implementations2。dll is a simple assembly identifier like Christian Gross。
The following is the precise identifier of the assembly。
Implementations2; Version=1。0。0。0; Culture=neutral; PublicKeyToken=6bc4c8c27c08ba48
The identifier is quite a mouthful; but it says everything you need to know。 This specifies
the name as Implementations2; the version number; the culture (bination of language and
country); and a fixed…signed identifier。 When culture is defined as neutral; it means that only
the language is taken into account and not the country…specific bit。 For example; if the culture
is en…CA; with neutral; the CA bit will be ignored; which means a neutral form of English; known
in this context as international English; will be used。
Using all of these attributes; you can uniquely identify an assembly。 This lets you load a
specific version of the assembly; allowing multiple similar assemblies to be loaded simulta
neously。 This specific referencing lets you to use ponents according to version and language。
The extra information is specified in the source code file AssemblyInfo。vb。 If you want to edit
this file; select the project and then choose Project Show All Files。 You’ll find the AssemblyInfo。vb
file under the My Project node in the Solution Explorer。 Following is the plete implementation
for Implementations2。dll。
Imports System
Imports System。Reflection
Imports System。Runtime。InteropServices
' General Information about an assembly is controlled through the following
' set of attributes。 Change these attribute values to modify the information
' associated with an assembly。
…………………………………………………………Page 354……………………………………………………………
332 CH AP T E R 1 2 ■ L E A R N I N G A B OU T A PP L I CA TI O N CO N F I G U R AT IO N AN D D Y N A M I C L O AD I N G
' Review the values of the assembly attributes
'The following GUID is for the ID of the typelib if this project is exposed to
' Version information for an assembly consists of the following four values:
'
' Major Version
' Minor Version
' Build Number
' Revision
'
' You can specify all the values or you can default the Build and Revision Numbers
' by using the '*' as shown here:
'
Notice that all of the assembly descriptors are declared as attributes。 The bolded
attributes reference the version of the assembly。 By adjusting these attributes; you can tweak
which assembly is loaded; as explained in more detail in the uping “Versioning Assemblies”
section。
To load a specific assembly; you need to create an assembly name; like this:
Dim assemblyName As AssemblyName = New AssemblyName(value)
Dim assembly As Assembly = Assembly。Load(assemblyName)
Dim obj As Object = assembly。CreateInstance(info。TypeName)
The variable value contains the precise identifier of the assembly and is passed as a
constructor parameter to AssemblyName。 The resulting AssemblyName instance is passed to the
method Assembly。Load(); which loads the assembly。 The instantiation of the type follows the
same sequence as previously outlined。
Note that there is no indication of where the assembly is located。 The default locations that
are probed are the local working directory of the executing process and the GAC。
…………………………………………………………Page 355……………………………………………………………
CH AP T E R 1 2 ■ L E AR N IN G AB O U T AP P L I CAT I ON CO N F IG U R AT IO N A N D D Y N A M IC L O AD IN G 333
■Note For more details about assembly loading; see Pro VB 2008 and the 3。5 Platform; Third Edition
by Andrew Troelsen (Apress; 2008)。
Relocating a Strongly Named Assembly to the GAC
Besides having the ability to tweak which assembly is loaded; another reason to use the precise
assembly name is to have the ability to load an assembly from the GAC。 The GAC is a place where
assemblies can be placed to have global shared access。 Think of the GAC as the WindowsSystem32
directory of the environment。 The precise location for the GAC is c:windowsassembly。
Even though the GAC is just another directory; you should not just delete and add assemblies
there; as you would with any other directory。 To delete a file from the GAC; use the context
sensitive Uninstall menu item (in Windows Explorer right…click the assembly you want to
uninstall and select Uninstall)。
To add an assembly to the GAC; use the utility gacutil; which is distributed with the
SDK (not with Visual Basic Express)。 You can locate it at C:Program FilesMicrosoft SDKs
Windowsv6。0Bin or similar。 Add this directory to your path so that you can run gacutil anywhere。
The following mand lines demonstrate how to add the Definitions and
Implementations2 assemblies to the GAC (assuming the files implementations2。dll and
definitions。dll reside in the current directory)。
gacutil /I definit