ResolveReferenceLinksComponent2: Unknown reference link target

Topics: Developer Forum, Project Management Forum, User Forum
Mar 18, 2011 at 12:37 PM

Hi,

I was hoping that this issue was fixed now with the latest relase (1.9.3.0), since the old discussions on this mentioned that SHFB didn't support .NET 4.0. But I still get this problem, even after installing 1.9.3.0. I even tried to use the "Wildcard" plugin, without success.

Is this a known problem? Is there a way to fix this?

If you need, it would be easy for me to create a sample to reproduce the problem.

regards,
Staffan

Coordinator
Mar 18, 2011 at 3:58 PM

You'll need to be more specific.  Unknown reference link targets happen for various reasons.  It could be as simple as the MSDN web service not resolving the link.

Eric

 

Mar 21, 2011 at 9:21 AM

OK. Since I referred other old topics I thought it was clear. Anyway, it has nothing to do with MSDN references; it occurrs when one custom component references another custom component. And it doesn't matter if the referenced component exist in GAC or in the same directory as the documentation component, nor does it matter if I add a reference in SHFB.

I have a working sample that I will send to you, but I need your email address.

regards,
Staffan

Coordinator
Mar 21, 2011 at 8:05 PM

See my reply to this thread as it appears to be the same issue: http://shfb.codeplex.com/discussions/70591

If not, my e-mail address is in the About box in the GUI and in the footer of the pages in the help file.

Eric

 

Mar 22, 2011 at 8:36 AM

Thanks, using the Additional Reference Links Plug-In worked. I have been using nDoc until now, and that resolved the links automatically.

However, adding reference to other SHFB projects is not optimal, because they may exist in other TFS projects, or we may not even have a SHFB project if using third-party components. Maybe it would be possible to create a search or keywords ms-xhelp links based on the referenced components/xml?

/Staffan

Feb 27, 2014 at 9:34 AM
Same issue with third party components and I don't have SHFB projects for them but the xml are provided with the dll.
They are distributed with NuGet so the path changes on each update. I tried a Wildcard Assembly Reference but as said previously that doesn't fix the issue.

Is it possible to automatically add them as documentation source or disable all warnings about it ? Is it possible to disable all Sandcastle warnings (output only errors) ?

Guillaume
Coordinator
Feb 27, 2014 at 8:38 PM
Set the BuildAssembler Verbosity property in the Build category to Only Errors. That will suppress all the warnings, not just the ones related to this case though. Typically, you don't want reference assemblies as documentation sources since their content usually isn't relevant to the stuff you are documenting that uses them.

If your intent is to document the reference assemblies as well, the documentation source's Source File property supports wildcards. If the Include Subfolders property is set to true, it will search subfolders as well.

If your intent is simply to suppress the "unknown reference link" warnings, then you will need to use the Additional References Links plug-in. You can apply the same wildcard settings to the subproject's documentation sources to achieve the same effect (wildcard inclusion with subfolders).

Eric
Nov 20, 2014 at 6:26 PM
Edited Nov 20, 2014 at 7:35 PM
Eric,

Per your previous comment, how would one use "Additional Reference Links plug-in" to suppress the "unknown reference link" warnings?

--Rob

Edit:

A bit about the issue I'm trying to solve. I am using a third-party API (FluentValidation) in a project that I'm documenting with Sandcastle. When I build the Sandcastle Project, I receive the following warnings (one for each type that implements FluentValidation.AbstractValidator<T>).
C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\SandcastleHelpFileBuilder.targets(40,3): warning : BuildAssembler : warning : ResolveReferenceLinksComponent: [T:MyProject.PersonValidator] Unknown reference link target 'T:FluentValidation.AbstractValidator`1'. [C:\path\to\documentation\Help\Working\BuildReferenceTopics.proj]
I have set the following API filter hoping it would help. Also, I have tried setting the namespace's isExposed attribute to true and false with no difference.
<Filter entryType="Namespace" fullName="FluentValidation" isExposed="False">
  <Filter entryType="Class" 
          fullName="FluentValidation.AbstractValidator`1" 
          filterName="AbstractValidator`1" 
          isExposed="False" />
</Filter>
It reduced the number of warnings, but I still get at least one warning per type that implements FluentValidation.AbstractValidator<T>.
Coordinator
Nov 20, 2014 at 8:27 PM
Create a SHFB project and add the reference assemblies to it as documentation sources. This project does not have to be built so you can exclude it from the build if it's part of a solution.

In your main documentation project, add the Additional Reference Links Plug-In using the Plug-Ins category. Configure it by adding the project created above to it and set the link types to None. Build your main project and the warnings should be gone.

Eric