Msbuild 为什么Sandcastle帮助文件生成器不将Msdn缓存存储在指定的文件夹中?
我正在尝试使用Sandcastle帮助文件生成器为我的应用程序构建文档。我将Msdn缓存组件添加到.shfbproj文件中,如下所示:Msbuild 为什么Sandcastle帮助文件生成器不将Msdn缓存存储在指定的文件夹中?,msbuild,sandcastle,Msbuild,Sandcastle,我正在尝试使用Sandcastle帮助文件生成器为我的应用程序构建文档。我将Msdn缓存组件添加到.shfbproj文件中,如下所示: <ComponentConfigurations> <ComponentConfig id="Cached MSDN URL References" enabled="True" xmlns=""> <component id="Cached MSDN URL References" type="SandcastleBu
<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>
$(MSBuildProjectDirectory)\Cache\MsdnUrl.Cache
问题是,在生成帮助文件后,没有在此位置创建此缓存文件。知道为什么不会发生这种情况吗?这是因为ComponentConfigurations部分不包含由MSBuild执行的MSBuild代码。ComponentConfigurations是一个包含XML数据的属性,这些数据将传递给相关组件,并由组件框架进行解析。这通过使用“SHFB”属性表示,如 {@SandcastlePath} 它不是MSBuild属性。因此,常规$(..)属性在此xml中不起作用