2

I need to implement a publishing step in a TFS Build deployment process to generate the Build artifacts. We are using Gulp for our local build/publishing process, but want to try and use HPP for TFS builds.

So first I tried to add the https://github.com/richardszalay/helix-publishing-pipeline Nuget package to my Helix website Project.

I edited the csproj of website and added the below . I also created a new website Publishing. Project and added the same and got the below error:

<ItemGroup>
    <ProjectReference Include="..\..\..\Foundation\*\code\*.csproj" />
    <ProjectReference Include="..\..\..\Feature\*\code\*.csproj" />   
    <ProjectReference Include="..\..\..\Project\*\code\*.csproj" /> 
  </ItemGroup>



<DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
  <PublishProfile>Company-DEV</PublishProfile>
</PropertyGroup>

<!-- The rest can go into ProjectName.wpp.targets if you prefer -->
<PropertyGroup>
  <AutoPublish Condition="'$(AutoPublish)' == '' and '$(Configuration)' == 'Debug' and '$(BuildingInsideVisualStudio)' == 'true' and '$(PublishProfile)' != ''">true</AutoPublish>

  <AutoPublishDependsOn Condition="'$(AutoPublish)' == 'true'">
    $(AutoPublishDependsOn);
    WebPublish
  </AutoPublishDependsOn>
</PropertyGroup>

But I am getting this error -

There is a circular dependency in the target dependency graph involving target "CollectReferencesFromHelixModules".

If I remove this line - <ProjectReference Include="..\..\..\Project\*\code\*.csproj" /> then the error goes away.

Can anyone help to figure out why the circular dependency can be removed. I also want the Project website, bin to be generated in the build artifacts.

2
  • Did you add the HPP website project to the the Project folder?
    – Richard Seal
    Oct 29 '19 at 5:53
  • Yes @RichardSeal I added to Project first and then got this error , then i created a new Publishing Project , and got the same error
    – Abhay Dhar
    Oct 29 '19 at 5:55
3

My guess is that you have added the HPP Website project to your Helix Projects folder, and so its trying to add a reference to itself and getting into a Circular reference.

When I use HPP I set my folders up like this:

Solution
-- Feature
-- Foundation
-- Project
-- Website
   -- HelixPublishingPipeline.Website.csproj

Doing it like that should clear up any circular references.

3
  • Let me try moving the publishing Project outside "Project" folder and into a website folder
    – Abhay Dhar
    Oct 29 '19 at 5:57
  • 1
    Thanks , it works on moving project with HPP to its own website folder. Would this structure be in-line with Helix principles ?
    – Abhay Dhar
    Oct 29 '19 at 8:55
  • 1
    yeah. I solved that issue by moving the HPP publishing project outside of the dynamic Project layer structure. Helix principles do not dictate a physical structure, but a rather a set of guidelines between physical or logic boundary which do not depend on filesystem. That's an implementation details imho.
    – Roman
    Dec 17 '19 at 21:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.