2009-03-24 3 views
1

Я пытаюсь создать документацию для своего приложения, используя Sandcastle Help File Builder. Я добавил компонент кэша MSDN в файл .shfbproj следующим образом:Почему в Sandcastle Help Builder не хранится кеш Msdn в указанной папке?

<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> 

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

ответ

2

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

{@SandcastlePath}

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