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

Проблема в том, что этот файл кэша не создается в этом месте после создания файла справки. Любые идеи, почему этого не произойдет?


person Draco    schedule 24.03.2009    source источник


Ответы (1)


Это связано с тем, что раздел ComponentConfigurations не содержит код MSBuild, выполняемый MSBuild. ComponentConfigurations — это свойство, содержащее XML-данные, которые будут переданы рассматриваемому компоненту и там проанализированы структурой компонента. На это указывает использование таких свойств "SHFB", как

{@SandcastlePath}

который не является свойством MSBuild. Таким образом, обычные свойства $(..) не работают в этом xml.

person Peter Lillevold    schedule 26.03.2009