Почему Sandcastle Help File Builder не хранит кэш Msdn в указанной папке?
Я пытаюсь собрать документацию для своего приложения, используя Sandcastle Help File Builder. Я добавил компонент кэша Msdn в файл.shfbproj следующим образом:
<ComponentConfigurations>
<ComponentConfig id="Cached MSDN URL References" enabled="True" xmlns="">
<component id="Cached MSDN URL References" type="SandcastleBuilder.Components.CachedResolveReferenceLinksComponent" assembly="{@SHFBFolder}SandcastleBuilder.Components.dll" locale="{@Locale}" linkTarget="{@SdkLinkTarget}">
<cache filename="$(MsdnCachePath)" />
<targets base="{@SandcastlePath}Data\Reflection" recurse="true" files="*.xml" type="{@SDKLinks}" />
<targets files="reflection.xml" type="{@ProjectLinks}" />
</component>
</ComponentConfig>
</ComponentConfigurations>
Значение свойства $(MsdnCachePath):
<MsdnCachePath>$(MSBuildProjectDirectory)\Cache\MsdnUrl.cache</MsdnCachePath>
Проблема заключается в том, что этот файл кэша не создается в этом месте после создания файла справки. Есть идеи, почему этого не произойдет?
1 ответ
Это связано с тем, что раздел ComponentConfigurations не содержит код MSBuild, выполняемый MSBuild. ComponentConfigurations - это свойство, содержащее данные XML, которые будут переданы рассматриваемому компоненту и проанализированы структурой компонента. На это указывает использование свойств "SHFB", таких как
{} @SandcastlePath
который не является свойством MSBuild. Таким образом, обычные свойства $(..) не работают в этом xml.