"No APIs found to document" from CLI, but builds in Visual Studio
Problem reported by z 303 - May 9 at 5:17 PM
Resolved
Evaluating GhostDoc Enterprise trial, the command line always gives me this message, but help files generate from the GhostDoc tools menu inside of Visual Studio.  Setting one or multiple projects in the Help File Builder GUI makes no difference.
I notice the command line output does a "parsing" step for every project in the solution, even though only a few projects in the solution have been set to generate help documentation.
I also notice that GhostDoc automatically adds *.GhostDoc.xml to .gitignore, which I don't understand because isn't this this xml file sbe required for a build server to generate documentation from the files in our repo?

5 Replies

Reply to Thread
0
Serge B. Replied
Employee Post
Hi Zoe,
 
Are you running both VS copy and command line on the same computer or the CMD is run on a build server?
 
I will open a support ticket linked to this thread - please email us the full console output you get when running the CMD.
 
Regarding the parsing - yes GhostDoc parses the whole solution when generating help docs - this is to collect all referenced entities in all projects of the solution to product accurate inherited documentation.
 
Yes, *.GhostDoc.xml should be included into the source control as it is required on the build server to produce help docs. We do not add that file to .gitignore - as you are aware that file is crowdsourced and there are apparently enough users that (incorrectly) assumed it should be ignored and keep adding it to .gitignore.
 
I will follow up shortly within the support ticket about the console output.
 
Thanks!
0
z 303 Replied
Running locally (testing it works local before trying on our build server). Using just a .bat file from command line
"%ProgramFiles(x86)%\SubMain\GhostDoc Enterprise\SubMain.GhostDoc.Cmd.exe" /solution:"..\Test.sln" /projectConfiguration:Release /helpConfiguration:HelpFile /consoleDetailed

The log is just
SubMain.GhostDoc.Cmd v5.9.18070
Copyright (c) 2002-2018 SubMain
User: za
Target framework 2.0.50727.8794
----- Parsing start: Project: XXXX ---
Parsing...
^^same for every project in the solution
----Done---
Parsing complete -- 0 errors
Loading references...
Loading active configuration...
Building documentation...
Building Help Documentation...
No APIs found to document.
Help folder: solutionFolder\Help

The solution has several projects, where the project is in a solution folder of the same name, as is the file on the drive.
Solution - ProjName>ProjName.csproj
FileSystem - ProjName>ProjName>ProjName.csproj
Note the extra projname folder on filesystem also exists if file and solution do not have the extra folder organization, since VS always creates a csproj in it's own folder and just shows the project without it's immediate folder.

At one point, I started removing projects and folders, and had the commandline work, after I removed the extra folder in the solution. i.e.  Solution - ProjName.csproj   FileSystem ProjName>ProjName>ProjName.csproj
The .sln file itself only having one entry for 'ProjName'.  However I was never able to repeat this. Even removing from the solution all of the solution folder organization so that the only item in the solution with 'ProjName' was the csproj itself.
I also noticed that if I create a new solution, with a new project, the GhostDoc UI for build help file, and the GhostDoc.xml list the project as only "ProjName"  but in my solution that will not build from commandline, it actually has the .csproj extension in both the GhostDoc UI and the GhostDoc.xml file.  
 
0
z 303 Replied
I have furthered it down to the following curious details.
When I include one of our unittest projects (which has a unittest icon next to it's project in the solution VS2015) the GhostDoc build help file UI shows all of the projects with all of their subfolders and the csproj extension.
e.g.
VectorMath/VectorMath/VectorMath.csproj
The GhostDoc xml also lists this text as the item under a 'selectedProject' tag

In this state, the command line gives 'no apis found to document'
if I remove this project from the solution, the UI displays only project names, without extension or subfolder.
e.g. 
VectorMath
The GhostDoc xml also lists this text as the item under a 'selectedProject' tag
In this state, the command line builds the documention.
0
z 303 Replied
One final clarification that may give the answer.  The solution has multiple unittest projects, each in their own solution folder, and matching their project in that folder.  Each of these is named "UnitTests.csproj".
If the solution has more than of these projects included, GhostDoc commandline fails.
If the solution has only 1 of these project, commandline works.
It seems that GhostDoc commandline cannot handline the solution having more than one project, with the same project name, even if they are in different solution and fileSystem folders. Note that our UnitTests projects all have unique assembly names.
Quickfix is for us to have a separate solution without unittests, as we don't need documentation for those projects, but maintain multiple solutions is less than ideal.
0
Serge B. Replied
Employee Post
Hi Zoe,
 
We have resolved the issue and emailed you download link for the interim build with the fix.
 
Thanks!

Reply to Thread