RemObjects.Elements.Echoes.targets(53,3): error

I’m continuing the work to upgrade projects from VS2012 and older versions of element to VS2017 and current RemObjects .NET suite. My latest challenge looks to be the same as this thread

Specifically for me :-

------ Build started: Project: OXY009, Configuration: Debug ------
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\RemObjects Software\Elements\RemObjects.Elements.Echoes.targets(53,3): error : Reference 'RFXControls' could not be resolved for target 'Echoes' (Echoes .NET anycpu).
Done building project "OXY009.oxygene" -- FAILED.

Build FAILED.
========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========

This project is a Hydra plugin DLL with lots of references, mainly to DevExpress, but also to RemObjects. I created a simple WinForms .NET application, adding a control from my RFXControls DLL and it compiles / runs without issue.

My next step would be to rebuild this whole DLL from the ground up, but is there something I can better spend my time doing to try and resolve this ?

From the other thread , I know “detail build” output was requested. If the same would be useful here, I would need pointing in the right direction within VS2017 as I can’t see where I would get more verbose output than I’ve pasted above.

For info, the Elements build is 10.0.0.2361

Reference ‘RFXControls’ could not be resolved for target ‘Echoes’ (Echoes .NET anycpu).

essentially, it means that the build chain cannot locate RFXControls.dll, where is that .ddl from (is it yours, or an installed third party library, like there DevExpress ones?)?. How does this reference look in your project file? Is this file in “known” location, or does it have a HintPath that points to the .dll? if so, is the hint path correct?

It can’t hurt. this setting should be in the “Tools|Options” dialog, if I remember correctly under “Projects & Solutions|Build”, there’s two combo-boxes, one for the log inside VS (you want that one) and one for the log on disk.

Thanks Marc,

It was indeed the Hint Path.

 <Reference Include="RFXControls">
  <HintPath>..\FrameWork\Component\RFXControls\bin\Release\RFXControls.dll</HintPath>
  <Private>True</Private>
</Reference>
<Reference Include="RFXControls" />
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Data.Linq">
  <HintPath>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Data.Linq.dll</HintPath>
</Reference>

The above is what was originally in the problem project file. The lines below are from a clean project, correctly picking up the DLL (RFXControls is one of our own). I made the path absolute, but that made no difference, then I spotted the second entry for RFXControls. Once removed, it picked up the DLL.

<Reference Include="RFXControls">
  <HintPath>D:\Oxygene\FrameWork\Component\RFXControls\bin\Release\RFXControls.dll</HintPath>
  <Private>True</Private>
</Reference>

Odd that you can’t (as far as I know) see these paths visually in VS anywhere, but one more issue down. Thanks again.

Ah, that might explain the change. MSBuild, the build chain we used before, ignored broken references, so of you had two references to that .dll, one good, one bad, you’d have gotten no error. EBuild, our own, new build chain treats a broken/missing reference as an error.

Yeah, it’s a shame. Water will show them for you :wink:

I did have a very brief look at Water when I started this upgrade process. I’m no fan of VS, but as we’re heavily reliant on the visual designer, Water isn’t an option.