Page 17 - Open Soource Technologies 304.indd
P. 17
Modern Programming Tools & Techniques-III
Notes The public key for any strong name assigned to the assembly (not required in all assemblies)
A list of files in the assembly with hash information
Information on exported types
Information on referenced assemblies
In addition, you can add other information to the manifest by using assembly attributes. Assembly
attributes are declared inside of a file in an assembly, and are text strings that describe the
assembly. For example, you can set a friendly name for an assembly with the AssemblyTitle
attribute:
<Assembly: AssemblyTitle(“Test Project”)>
Figure 1.3: Assembly Manifest
Source: http://msdn.microsoft.com/en-IN/library/ms973843.aspx
1.3.8 An End to DLL Hell
DLL hell is a common term for various problems associated with the use of dynamic link
libraries (DLLs) or DLL files. A DLL file is a resource within the Windows operating system that
contains code and data related to the functionality of one or more applications. These files,
which may have the file extension .dll or other file extensions, have been a major building block
for the Windows operating system and Windows programs since the early MS-DOS versions of
Microsoft’s computer technology. Successive versions of Windows have illustrated certain
problems with the use of DLL files for many different programs. From a customer perspective,
the most common versioning problem is what we call DLL Hell. Simply stated, DLL Hell refers
to the set of problems caused when multiple applications attempt to share a common component
like a Dynamic-Link Library (DLL) or a Component Object Model (COM) class. In the most
typical case, one application will install a new version of the shared component that is not
backward compatible with the version already on the machine. Although the application that
has just been installed works fine, existing applications that depended on a previous version of
the shared component might no longer work. In some cases, the cause of the problem is even
more subtle. For example, consider the scenario where a user downloads a Microsoft ActiveX
control as a side effect of visiting some Websites. When the control is downloaded it will replace
any existing versions of the control that were present on the machine. If an application that has
been installed on the machine happens to use this control, it too might potentially stop working.
In many cases there is a significant delay before a user discovers that an application has stopped
working. As a result, it is often difficult to remember when a change was made to the machine
10 LOVELY PROFESSIONAL UNIVERSITY