Reference Search Path XMLs

In addition to automatically knowing where to locate reference files available as part of the core platforms, the Elements compiler toolchain employs a system of XML files to let it know where to locate referenced libraries.

Some of these XML files will be created by the Elements install itself, by third party libraries registering themselves with Elements, and you can also configure your own paths to let Elements find references you use frequently, without having to rely on Hint Paths.

On Windows, Elements will look for these files in %APPDATA%\RemObjects Software\Elements\Reference Paths and %ProgramData%\RemObjects Software\Elements\Reference Paths.

On Mac, it will look in the subfolder RemObjects Software/Elements/Reference Paths under both ~/Library/Application Support for the current user and the system-wide /Library/Application Support folders. When building from inside of Fire, the compiler will also look at a dedicated set of references provided inside of the Fire .app bundle.

Underneath these folders, the compiler will look in platform-specific subfolders, namely:

as those are the internal codenames for the respective platforms. Any .xml file in these folders will be looked at for potential reference paths. For each platform, the compiler will also look in specific subfolders for reference paths for a particular sub-platform. These are:

  • Echoes/Full – for full .NET framework references
  • Echoes/NETStandard – for .NET Standard references
  • Echoes/Silverlight – for Silverlight-only .NET references
  • Cooper/Android – for Android-only Java references
  • Cooper/Plain – for non-Android-only Java references
  • Toffee/iOS – for iOS-only Cocoa references
  • Toffee/macOS – for Mac-only Cocoa references
  • Toffee/tvOS – for Mac-only Cocoa references
  • Toffee/watchOS – for Mac-only Cocoa references
  • Island/Linux – for Linux-specific Island referenes
  • Island/Windows – for Windows-specific Island references
  • Island/Android – for Android NDK-specific Island references
  • Island/WebAssembly – for WebAssembly-specific Island references

File Format

The format of the XML files is as follows, where any number of <path> entries may be provided, and the Name value is purely for display purposes:

<?xml version="1.0" standalone="no"?>
<paths>
  <path name="Sugar for .NET">/Users/mh/Code/git/Oxygene/Bin/Sugar/Echoes</path>
</paths>

Reference Paths in the IDE

In Fire and Water, you can view the currently configured reference paths (including those set by Fire itself) on the "Reference Paths" tab of the Preferences dialog:

Broken/missing folders will be shown in red, and double-clicking a valid entry will open the corresponding folder in Finder or Windows Explorer. In the screenshot above, you see that Elements is looking at both externally registered locations from ~Library (indicated by the "(User)" suffix), as well as those inside Fire (indicated by "(Fire)").

You will also be able to add custom paths via this dialog.

In Visual Studio, you can view and configure reference paths in the "Tools|Options" dialog, under "Projects and Solutions|RemObjects Elements|Reference Paths" in the tree:

See Also