lindtosterhase
lindtosterhase

Reputation: 41

Sandcastle ResolveReferenceLinksComponent warning

I want to create a documentation via sandcastle. Therefore I need to reference DevExpress which should not be documented.

I added the DevExpress dll's under references and the DevExpress resource folder at the project, too.

I tried several different settings, but can't resolve it.

Now Sandcastle shows this Warning several times:

BuildAssembler : warning : ResolveReferenceLinksComponent: [T:test.DEVEXPRESS] Unknown reference link target 'P:DevExpress.XtraEditors.BaseStyleControl.Appearance'. [G:\test\test\test\Testing\Working\BuildReferenceTopics.proj]

How can I resolve this?

Upvotes: 4

Views: 2463

Answers (1)

tokafew420
tokafew420

Reputation: 725

I've been facing the same issue for a while now, and I'm just getting around to researching it.

Sandcastle builds documentation which contains clickable reference links. However some references may not resolve because they are from external assemblies (dependencies). This will cause a warning in the build output. If you're OK with that then just ignore it because there's no harm. However if you have OCD (like me), then follow the instructions below to suppress the warnings.

Instructions

  1. Create a dummy Sandcastle project.
    • It does not need to be included in the solution, however I find it helpful during the setup.
  2. Disable the project from being built. (Recommended as the build may fail.)
  3. Add the assemblies mentioned in the ResolveReferenceLinksComponent warning to the Documentation Source.
  4. Try to build it. It may fail with "unresolved assembly" errors. (Perhaps dependencies of your dependencies.)
  5. If the "unresolved assembly" is not reference directly in your project then you can ignore it using the Assembly Binding Redirection plug-in.
    • Otherwise add the required referenced assembly to Documentation Sources as well.
    • You can also add it to the project References.
  6. Add the dummy Sandcastle project to the main Documentation project using the Additional Reference Links plug-in.
    • Make sure to configure the plug-in so that all Link Types are set to None.

Note: When updating dependencies, the dummy Sandcastle project's Documentation Sources and reference also need to be updated. [TODO]: Find a way for this to be automated. Nuget?

Note: Sandcastle does a partial build of the dummy project to gather Type information (via reflection). The dummy project does not necessary have to build successfully however it must pass the TransformReflectionInfo phase in order for the plug-in to work.

References

IMO this is not quite the solution I was hoping for as it adds another project needlessly, however since I had so many warnings that they were masking real issues. Better of two evils I guess.

Upvotes: 1

Related Questions