Por que Sandcastle Help File Builder não armazenar o cache Msdn na pasta especificada?
-
21-08-2019 - |
Pergunta
Eu estou tentando construir a documentação para o meu aplicativo usando Sandcastle Ajuda Builder Arquivo. Eu adicionei o componente de cache Msdn para o arquivo .shfbproj da seguinte forma:
<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>
O valor da propriedade $ (MsdnCachePath) é:
<MsdnCachePath>$(MSBuildProjectDirectory)\Cache\MsdnUrl.cache</MsdnCachePath>
O problema é que este arquivo de cache não está sendo criado neste local após o arquivo de ajuda foi gerado. Alguma idéia por que isso não estaria acontecendo?
Solução
Isso ocorre porque a seção ComponentConfigurations não não contém código MSBuild executado pelo MSBuild. ComponentConfigurations é uma propriedade que contém dados XML que serão passados ??para o componente em questão e não analisados ??pelo framework de componentes. Isto é indicado pelo uso de propriedades "SHFB" como
{@ SandcastlePath}
que não é uma propriedade MSBuild. Assim, $ regulares (..) propriedades não trabalho dentro deste xml.