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 Startup Command and Parameter Reference.