Reference 'Echoes' could not be resolved for target 'Echoes'

When trying to build a .Net Core Oxygene project on Linux, after upgrading to 10.0.0.2425 to solve a different problem, I am getting the following errors:

E: Reference 'Echoes' could not be resolved for target 'Echoes' (Echoes .NETCore anycpu).
E: Reference 'Elements' could not be resolved for target 'Echoes' (Echoes .NETCore anycpu).

I get the exact same error building the same project from the command line on MacOS (using EBuild.exe installed with Fire). The same project builds fine from Visual Studio on Windows and also from the command line on Windows.

Logs from GNU make (which echos the commands issued) are attached.

linux.txt (40.0 KB) macos.txt (35.3 KB)

Philip,

What version of .NET Core are you building for? the .NET Standard versions of Echoes.dll and Elements.dll currently;y only support .NET Standard 2.0 and up, which requires .NET Core 2.0 or later.

If you are building for .NET Core 2.0 or later, and this still fails, can you try rerunning the build with --debug --debug-reference-resolving as additional switches, and post the whole log?

Also, I assume you installed the compiler via sh install.sh, correct? Do you have an ~/.elements/EchoesPaths.xml, and does it point to the correct References\Echoes sub-folder of where you installed Elements?

thanx!
marc

I’m building for .Net Core 2.2, specifically the 2.2.6 runtime.

The log with debug switches and a zip of the whole project are attached. linux.txt (71.7 KB) project.zip (30.7 KB)

I ran install.sh, which installed assemblies to the GAC and created /usr/local/bin/ebuild among other things.

Here are the contents of ~/.elements:

pmunts@builder:~/.elements$ ls -l
total 16
-rw-r--r-- 1 pmunts pmunts  120 Jul 22 07:40  GothamPaths.xml
-rw-r--r-- 1 pmunts pmunts  120 Jul 22 07:40  IslandPaths.xml
drwxr-xr-x 8 pmunts pmunts 4096 Jul 22 07:40 'Reference Paths'
-rw-r--r-- 1 pmunts pmunts  120 Jul 22 07:40  ToffeePaths.xml

Hmm, whats inside Reference Paths? there should be Echoes/Elements.xml, which points to the correct folder with has NETStandard20\Elememts.dll as subfolder…

Oddly, from our log file, I’m not seeing any paths listed where it checks for the files, which leads me to believe that file might be missing or wrong. I’ll try with your project on my test system in a sec.

Now I’m on to something: I had unzipped the dist file for Linux to /usr/local/lib/elements/ but all of the .xml files inside .elements reference /home/pmunts/RemObjects_Elements/.

So I symlinked /home/pmunts/RemObjects_Elements to /usr/local/lib/elements and now I can build successfully.

cool!

for the record, here;'s what I got:

                  -> Task RemObjects.EBuild.Elements.ElementsResolveEchoesReferencesForTarget started for test_userled_gpio, Echoes.
D:                   Looking for reference 'Echoes'
D:                   | Checking /home/ubuntu/Elements/References/Echoes/Echoes.dll, ❌
D:                   | Checking /home/ubuntu/Elements/References/Echoes/Echoes/Echoes.dll, ❌
D:                   | Checking /home/ubuntu/Elements/References/Echoes/NETStandard2.0/Echoes.dll, ✅
                     Reference 'Echoes' was resolved to '/home/ubuntu/Elements/References/Echoes/NETStandard2.0/Echoes.dll' via XML for target 'Echoes'.
D:                   Looking for reference 'Elements'
D:                   | Checking /home/ubuntu/Elements/References/Echoes/Elements.dll, ❌
D:                   | Checking /home/ubuntu/Elements/References/Echoes/Echoes/Elements.dll, ❌
D:                   | Checking /home/ubuntu/Elements/References/Echoes/NETStandard2.0/Elements.dll, ✅
                     Reference 'Elements' was resolved to '/home/ubuntu/Elements/References/Echoes/NETStandard2.0/Elements.dll' via XML for target 'Echoes'.

So this is what I did:

I downloaded the zip file for linux as a normal user. Then I installed it with the following commands:

sudo mkdir /usr/local/lib/elements
sudo unzip 'RemObjects Elements - Mac and Linux Zip Distro - 10.0.0.2425.zip' -d /usr/local/lib/elements
cd /usr/local/lib/elements
sudo chmod +x *.sh
sudo ./install.sh

Then I had to ln -s /usr/local/lib/elements RemObjects_Elements in my home directory to make it work.

I’ve examined install.sh and determined the correct installation procedure as of 10.0.0.2425 would be to cd to where the zip file was unpacked (/usr/local/lib/elements in my case) and run install.sh as a normal user instead as superuser.

Correct. Run it as the user who wants to use the product; the script should sudo as needed.