Project reference not resolved

I have not yet got it working with project references.

The project HDSMDB.Client references project HDSMDB.Common in the same solution:

If I click the HDSMDB.Common reference:

This it a code snippet from the HDSMDB.Client.elements file:

<ItemGroup>
<ProjectReference Include="..\HDSMDB.Common\HDSMDB.Common.elements">
<Name>HDSMDB.Common</Name>
<Project>{5da3b460-fa95-4e9f-9725-50fff9ba7e95}</Project>
<Private>True</Private>
</ProjectReference>
</ItemGroup>

The solution file is attached.

HDSMDB.NET.sln.txt (3.2 KB)

The same solution works fine in Visual Studio 2015.

Using the latest Water build 2317.

is the project ID in the reference valid and matches the ID in the project? does the project build ok? can I see a full (diagnostic) build log?

In the solution file the project ID is: {5DA3B460-FA95-4E9F-9725-50FFF9BA7E95}
In the HDSMDB.Client.elements file it is: {5da3b460-fa95-4e9f-9725-50fff9ba7e95}

So they are not in the same case, but same text.

The project builds fine.

HDSMDM.build.log.txt (93.8 KB)

               -> Target Echoes started.
D:                Using cached data for ResolveReferences (19-03-2018 <= 27-03-2018)
               <- Target Echoes finished.

Can you send a “rebuild” log that does not used cached data is always useful for these scenarios. That said, since the project builds, the project reference is most likely fine. (the case does not matter, as it doesn’t affect the GUID value). So this sounds like an IDE-only issue.

Does this show for you with any project reference, eve in a simple test project? It does not reproduce here for me (tested Fire, will check in Water in a Biot, but thats the same logic):

Fine for me in Water, too, for the attached project:

ConsoleApplication311.zip (432.8 KB)

(typo on that button is fixed btw :wink:

It looks like you have an absolute path in your project reference?
Or maybe that is “calculated” by Fire/Water.
In my project there is only the project guid and the relative “path”. No hint path.

I will just check your project.

Here you have the rebuild log:
HDSMDM.build.log.txt (162.9 KB)

Your project works fine - the reference is shown as valid.

So I am thinking it may have something to do with the relative path?
The "…\ " which is not in your project.

Now I have tried this:

<ProjectReference Include="C:\SVN\Home\HD-SMDB\HDSMDB.Common\HDSMDB.Common.elements">
  <Name>HDSMDB.Common</Name>
  <HintPath>..\HDSMDB.Common\Bin\Debug\HDSMDB.Common.dll</HintPath>
  <Project>{5DA3B460-FA95-4E9F-9725-50FFF9BA7E95}</Project>
  <ProjectFile>C:\SVN\Home\HD-SMDB\HDSMDB.Common\HDSMDB.Common.elements</ProjectFile>
  <Private>True</Private>
</ProjectReference>

Uppercase GUID - just in “case” :wink:
Added the ProjectFile tag.
Added the HintPath again.
Full path in the Include attribute.

Same result - Water can not find the reference.

This is odd, yeah, at build time it all resolves fine:

D:                   Project Reference 'HDSMDB.Common' will resolve using target 'Echoes'.
                     Project Reference 'HDSMDB.Common' was resolved to 'C:\Program Files (x86)\RemObjects Software\Elements\Echoes\Reference Assemblies\Delphi.dll' via target 'Echoes'.
                     Project Reference 'HDSMDB.Common' was resolved to 'C:\SVN\Home\HD-SMDB\packages\Digst.OioIdws.Wsc.2.0.0\lib\net45\Digst.OioIdws.Common.dll' via target 'Echoes'.
                     Project Reference 'HDSMDB.Common' was resolved to 'C:\SVN\Home\HD-SMDB\packages\Digst.OioIdws.Wsc.2.0.0\lib\net45\Digst.OioIdws.LibBas.dll' via target 'Echoes'.
                     Project Reference 'HDSMDB.Common' was resolved to 'C:\SVN\Home\HD-SMDB\packages\Digst.OioIdws.Wsc.2.0.0\lib\net45\Digst.OioIdws.OioWsTrust.dll' via target 'Echoes'.
                     Project Reference 'HDSMDB.Common' was resolved to 'C:\SVN\Home\HD-SMDB\packages\Digst.OioIdws.Wsc.2.0.0\lib\net45\Digst.OioIdws.Wsc.dll' via target 'Echoes'.
                     Project Reference 'HDSMDB.Common' was resolved to 'C:\SVN\Home\HD-SMDB\packages\NLog.4.5.3\lib\net45\NLog.dll' via target 'Echoes'.
                     Project Reference 'HDSMDB.Common' was resolved to 'C:\Users\hd\AppData\Local\RemObjects Software\EBuild\Obj\HDSMDB.Common-D4FB158BE1301046A8E7B5982B0D2F9E4DE1618B\Debug\Echoes\HDSMDB.Common.dll' via target 'Echoes'.
                     Project Reference 'HDSMDB.Common' was resolved to 'C:\Users\hd\AppData\Local\RemObjects Software\EBuild\Obj\HDSMDB.Service.Old-88DB814F517B029D5EFC6B24ACBC615891D1AC98\Debug\Echoes\HDSMDB.Service.Old.dll' via target 'Echoes'.
                     Project Reference 'HDSMDB.Common' was resolved to 'C:\Users\hd\AppData\Local\RemObjects Software\EBuild\Obj\HDSMDB.Service-12C7C7C715B4EBF5E3A8301F94A50C83C50543FC\Debug\Echoes\HDSMDB.Service.dll' via target 'Echoes'.
                  <- Task RemObjects.EBuild.Elements.ElementsResolveEchoesReferencesForTarget finished for HDSMDB.Client, Echoes, took 0,0190s (0,0190s).

oddly it’s also only the one project reference that fails, others are fine (your screenshot shows the other references in THAT project are dll references; but in the build log I see other project references (eg Project Reference 'HDSMDB.Service' will resolve using target 'Echoes'...).Do those fail in the IDE too?

Any chance I can see the full solution? (you can mail it to me, and I’ll keep it confidential, of course).

Oh and while I doubt that is, can you try changing the “Include” in the reference itself to just have the name, not the full path, like mine has:

<ProjectReference Include="ClassLibrary">

make yours

<ProjectReference Include="HDSMDB.Common">

Well, that actually did help :slight_smile:

<ProjectReference Include="HDSMDB.Common">
  <Name>HDSMDB.Common</Name>
  <HintPath>..\HDSMDB.Common\Bin\Debug\HDSMDB.Common.dll</HintPath>
  <Project>{5DA3B460-FA95-4E9F-9725-50FFF9BA7E95}</Project>
  <ProjectFile>C:\SVN\Home\HD-SMDB\HDSMDB.Common\HDSMDB.Common.elements</ProjectFile>
  <Private>True</Private>
</ProjectReference>

Changing the include attribute that is.
So, this is different to how Visual Studio writes that Include attribute.

Now it shows fine, and all the implicit references are gone and nested under HDSMDB.Common.

Here is a fresh rebuild log after the change:
HDSMDM.build.log.txt (163.2 KB)

OK, cool. I can probably easily reproduce and fix that…

Thanks, logged as bugs://80856

bugs://80856 got closed with status fixed.