Почему Sandcastle Help File Builder не сохраняет кэш Msdn в указанной папке?

StackOverflow https://stackoverflow.com/questions/676546

  •  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 не работают.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top