Почему 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.

Другие вопросы по тегам