MRefBuilder failed to load types from assembly with netmodule dependencies

Mar 11, 2009 at 6:58 PM
Hi all,

Does anyone know if assembly with net module dependencies are supposed to be supported by MRefBuilder and Sandcastle in general ? My first problem with such assemblies is that MRefBuilder crash when trying to load assembly. Getting the last source package, I succeeded to run MRefBuilder on my assembly but it complains that it do not found any types (there's not type defined in my .dll but at least 150 types are defined in my net modules). I put all netmodules in the same directory that my assembly before running MRefBuilder.

Any ideas ?
Mar 12, 2009 at 2:51 AM
Edited Mar 12, 2009 at 2:56 AM
It would help to know a bit more about how you are invoking MRefBuilder.  Are you using a community tool such as the Sandcastle Help File Builder or DocProject to build the help file or are you building it from the command line using your own script or the Sandcastle example?  Are you trying to document all of the assemblies?  Are some of them dependencies that you don't want documented?  If so and you are building from the command line, are you specifying them with the /dep command line switch?  If you don't have any public classes in the assemblies you do want documented are you including /internal+ to enable documentation of private types and members?  Do any of the assemblies use binding redirection to load an alternate version of the assembly?

Mar 12, 2009 at 6:13 PM
Hi Eric,

I face the problem using SHFB 1.7.0.
My project only contains one assembly generated from 5 net module using al.exe in command line. No binding redirection. I want all the types exported by the assembly (in all net modules) being documented.
When using SHFB, MSRefBuilder raises an exception. So I look at the command line in the .bat generated by SHFB and start debugging. After having a look into source code, the exceptions was due to a missing resource file in the MsRefBuidlerStatic project (resource file related to CCI assembly).
Once I've compiled the new MsRefBuilder, it conplains that assembly contains no types. Not totally wrong since the assembly itself does not defined any public types but modules yes. In fact it seems like if the types defined in modules (stored in the ExportedTypes property of AssemblyNode class) are not considered as types defined by the assembly. This sounds strange to me ...

Mar 12, 2009 at 8:47 PM
Did you try setting the project's DocumentPrivates and DocumentInternals properties to true?  If that doesn't work, you'll probably have to open a work item here since it could be a limitation with how MRefBuilder works.  As a workaround, you could try using the unmerged assemblies in a help project to try document them.