I have the following scenario: I have a solution A
with multiple projects including some "base" projects and projects (denoted by D
) dependent on libraries produced by these base projects (thus projects in D
have a project reference to projects in base). I also have two solution filters: filter1.slnf
containing base projects, and filter2.slnf
containing projects in D
.
I am trying to first run msbuild filter1.slnf
and then run
msbuild filter.slnf /p:BuildProjectReferences=false
. If I understand correctly BuildProjectReferences=false
is to instruct msbuild to not explicitly build project references/dependencies. The aim being to make the second build step utilize the artifacts from the previous step. Changes to base projects are infrequent and I would not want to build them again and again in the CI/CD pipeline. But I also would like to keep the current solution to make it easier to make those infrequent changes, and thus solution filters.
In the output for the second command I see msbuild is trying to read the base project files.
My question is where should I look in the msbuild's open source-code to verify if it is just doing a simple check of whether the output directory contains the base libraries ? Also is this approach of breaking the build of the complete solution into different builds (eg. one filter for base projects and one/or more filter(s) for the dependent projects) using solution filters viable (as the official blog does not seem to speak explicitly of this use case)?
Related post: How do you split a Visual Studio Solution?