An assembly is a .NET library containing classes, interfaces, and resources. An assembly might contain:
  • Microsoft classes including GUI objects
  • Third-party .NET objects including Infragistics controls
  • .NET objects built by the application developer

Some assemblies, such as System.Windows.Forms and mscorlib (or System.Runtime for .NET), are loaded automatically because they are used by the AVM itself to support .NET features. Other assemblies that the application uses must be listed in an assemblies.xml file. .NET knows how to locate some assemblies automatically. For .NET Framework, it will look in the Global Assembly Cache. For .NET, it will find commonly used assemblies that are part of the .NET Runtime or .NET Desktop Runtime packages, which must be installed. Other assemblies that the application uses must be in the assemblies directory, which by default is the session's working directory. You can also use the -assemblies startup parameter to change where the AVM will look for assemblies. The assemblies directory must also contain an Assembly References File (assemblies.xml) that contains the list of assemblies to load. Progress Developer Studio for OpenEdge creates an assemblies.xml file for any project that uses .NET. You can also use the Assembly References Tool (proasmref) to add any additional assemblies that your application uses.

The Assemblies (-assemblies) startup parameter can specify an absolute or relative path to the directory containing assemblies.xml and any third-party assemblies. A relative path is relative to the working directory for the OpenEdge session. For more information on -assemblies, see Startup Command and Parameter Reference.