Recently, one of our partners had a question pertaining to Help 2.0 integration, and I wanted to use the SDKSample to try a few things out with filters and help content. Apparently, it’s been a while since I last played with that particular sample. Upon attempting to build it, I was confronted with the following build errors.
c10100b1: Failed to load file “..\..\..\Release\ExportTlbFromAssembly.exe”. The system cannot find the path specified.
c10100b1: Failed to load file “..\..\..\Debug\ExportTlbFromAssembly.exe”. The system cannot find the file specified.
LGHT0100 : File of type ‘File’ with name ‘..\Common\TypeLibs\Debug\DotNetAssembly.tlb’ could not be found.
LGHT0100 : File of type ‘File’ with name ‘..\Common\TypeLibs\Release\DotNetAssembly.tlb’ could not be found.
The VC++ 2008 project system now attempts to generate and embed a manifest into a project’s target binary. Because the C++ projects in question don’t produce a DLL or EXE binary, the subsequent invocation of mt.exe to generate the manifest fails the build. Consquently, no .TLB files are created for the ExportTlbFromAssembly or Setup projects. The easiest way to fix this, is to simply change the C++ project settings so that the project system thinks it’s building a static library instead of a .EXE.
Just right click on each of the projects in solution explorer, and from the project’s ‘Property Pages’ dialog, select the ‘General’ category under ‘Configuration Properties’, and then change the project’s ‘Configuration Type’ property to ‘Static Library (.lib)‘ instead of ‘Application (.exe)‘. Be sure to do this for each configuration (debug and release).
After setting the ‘Configuration Type’ property, you should be able to build the SDKSample project without error.