What rules are applied to SHFB’s IntelliSenseComponent’s output folder?

My experiments showed that SHFB’s IntelliSenseComponent did treat {@OutputFolder} correctly, but there’s a nuance.

If the folder attribute specified in

<output includeNamespaces="false" namespacesFile="Namespaces"
        folder="..." />

points to a folder inside a project’s OutputPath folder (.\docs\api in your case) then SHFB’s build process creates the folder, but then deletes it before generating website contents:

Last step completed in 00:00:34.5875
-------------------------------
Combining conceptual and API intermediate TOC files...

Clearing any prior web output
    Last step completed in 00:00:00.2360
-------------------------------
Extracting HTML info for HTML Help 1 and/or website...

The problem is that the default value of the {@OutputFolder} is exactly the same as the value of $(OutputPath), therefore if you put something like {@OutputFolder}\foo in the folder attribute then you’ll never see foo after build has finished.

The solution is simple: specify a folder that is located outside of your project’s output folder, like this:

<output includeNamespaces="false" namespacesFile="Namespaces"
        folder="{@OutputFolder}\..\distilledApi" />
<!--                            ^^       -->

Hope this helps.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)