Почему Sandcastle Help File Builder не сохраняет кэш Msdn в указанной папке?
-
21-08-2019 - |
Вопрос
Я пытаюсь создать документацию для своего приложения с помощью 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>
Проблема в том, что этот файл кэша не создается в этом месте после создания файла справки.Есть идеи, почему этого не произойдет?
Решение
Это связано с тем, что раздел ComponentConfigurations не содержит кода MSBuild, выполняемого MSBuild.ComponentConfigurations — это свойство, содержащее XML-данные, которые будут переданы соответствующему компоненту и там проанализированы платформой компонента.На это указывает использование таких свойств «SHFB», как
{@SandcastlePath}
который не является свойством MSBuild.Таким образом, обычные свойства $(..) в этом xml не работают.