An assembly is a .NET library or collection of classes. A GUI for .NET application uses several assemblies to connect the ABL and .NET sides of the application. The application might also use assemblies for the following:
Optional OpenEdge Ultra Controls for .NET
Classes used by the application that reference .NET objects
Third-party .NET controls
The AVM internally knows how to locate some assemblies that the GUI for .NET requires. By default, the AVM looks for any other assemblies in the session's working directory. The working directory must contain an Assembly References File (assemblies.xml). This file lists all the assemblies used by the application. Progress Developer Studio for OpenEdge includes a mechanism for creating an assemblies.xml file for any project that uses the GUI for .NET. Progress Developer Studio for OpenEdge automatically adds assembly references to the assemblies.xml file, but it also allows you to manage those references more directly. You can use the Assembly References Tool (proasmref) for modifying the assemblies.xml file outside of Progress Developer Studio for OpenEdge. You can add any additional assemblies that your application uses to that file or create your own.
Note: Even if you install assemblies in .NET's Global Assembly Cache (GAC), you must list all assemblies used by your application in assemblies.xml.
If you do not put your assemblies and assemblies.xml file in the session's working directory, you must use the Assemblies (-assemblies) startup parameter. The Assemblies (-assemblies) startup parameter enables you to specify the absolute or relative path to the directory containing assemblies.xml and any third-party assemblies that are not installed in the GAC. A relative path is relative to the working directory for the OpenEdge session. For more information on -assemblies, see OpenEdge Deployment: Startup Command and Parameter Reference.
In exceptional circumstances, you might need to include an assemblies.config file in your assemblies directory. The assemblies.config file is a customized type of .NET application configuration file. It applies only to assemblies that your application expects to find in the assemblies directory. It cannot affect assemblies installed in the GAC or the internal assemblies in OpenEdge-install-dir/bin.
The assemblies.config file enables the CLR to find assemblies by providing assembly-specific information. When a GUI for .NET application loads a .NET assembly, OpenEdge checks this configuration file for any changes for that assembly. For example, the file can point to an updated version of an assembly, an alternate path to load an assembly, or provide localization support by pointing to alternate assemblies. For more information on application configuration files, see the "Configuration Files" topic in the .NET Framework Developer's Guide, currently at the following address: