2009-03-24 12 views
1

Ich versuche, die Dokumentation für meine Anwendung mit Sandcastle Help File Builder zu erstellen. Ich fügte hinzu, die Msdn Cache-Komponente auf die .shfbproj Datei wie folgt:Warum speichert der Sandcastle Help File Builder den Msdn-Cache nicht im angegebenen Ordner?

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

Der Wert des $ (MsdnCachePath) Eigenschaft:

<MsdnCachePath>$(MSBuildProjectDirectory)\Cache\MsdnUrl.cache</MsdnCachePath> 

Das Problem ist, dass dieser Cache-Datei nicht erstellt wird an diesem Ort, nachdem die Hilfedatei generiert wurde. Irgendwelche Ideen, warum das nicht passieren würde?

Antwort

2

Dies liegt daran, dass der Abschnitt ComponentConfigurations keinen MSBuild-Code enthält, der von MSBuild ausgeführt wird. ComponentConfigurations ist eine Eigenschaft, die XML-Daten enthält, die an die fragliche Komponente übergeben und dort vom Komponenten-Framework analysiert werden. Dies wird durch die Verwendung von „SHFB“ Eigenschaften angezeigt wie

{@SandcastlePath}

, die keine MSBuild Eigenschaft ist. Daher funktionieren reguläre $ (..) Eigenschaften in diesem XML nicht.