BE0040 although library exists

Topics: Developer Forum
May 7, 2014 at 12:33 PM

In my scenario I have two SHFB projects, one is referenced by the other using the Version Builder plugin. When building from Visual Studio 2013 everything works fine and the documentation looks as expected.

When building from TFS however the build fails providing the following error code:
Error BE0029: Unexpected error while executing plug-in 'Version Builder': SandcastleBuilder.Utils.BuilderException: Unable to build prior version project: C:\Shares\Builds\3\Practices#####\src\Practices\Main\Source.documentation\NET\61b94d6d-b8fc-49d2-8639-378dd0fdb61c.shfbproj
I dug a bit deeper and evaluated the log file of the nested build. And that log file contained:
SHFB: Error BE0040: Project assembly does not exist: C:\Shares\Builds\3\Practices#####\bin#####.Toolkit.IO.dll
I opened the path mentioned and found out that the file is actually there. Any hint what I can do to fix the problem?

(On a sidenote: Accessing the logfile of the nested build was quite a task - as the $(OutDir) variable won't get propagated to the nested shfbproj file...)
May 7, 2014 at 7:11 PM
It could be that TFS is building the projects out of order. If you are using the latest release of SHFB, add the projects it is using as documentation sources to the References node as project references. In each reference, set the ReferenceOutputAssembly property to false. That will allow MSBuild to use the project reference to determine build order but won't include the output as a duplicate reference assembly in the documentation build.

May 8, 2014 at 8:05 AM
Hi Eric,

thank you for your quick reply! Adding the relevant libraries as references did not solve the problem. The log "acknowledges" that there are references set, but obviously MSBuild does not...