ドキュメントを生成するためにSandcastle Help File Builderをしばらく使用してきました。現在、それをビルド プロセスの一部にしようとしています。私たちのビルドは NAnt を使用して制御され、ビルドされるたびに出力が別の場所に送信されます (変更セット番号に基づいているため、衝突することなく同時ビルドを行うことができます)。つまり、dll はソース コードに関連する固定パスにありません。 .
NAnt スクリプトにターゲットを追加して SHFB を呼び出し、SHFB プロジェクトを含むソリューションを指定して msbuild タスクを呼び出します。
<target name="GenerateDocumentation">
<msbuild
project="${SourceURL}\Documentation\API Documentation\APIs.sln"
verbosity="Detailed">
<property name="OutputPath" value="${OutputPath}Documentation" />
<property name="ReferencePath" value="${OutputPath}wwwroot\\bin\\" />
</msbuild>
</target>
このページのように、ReferencePath プロパティを指定しました。これにより、元のプロジェクト ファイルの情報に依存するのではなく、SHFB がアセンブリを見つけて使用できるようになることが示されているようです。
ReferencePath プロパティが定義されている場合、リフレクション情報を生成するときに GenerateRefInfo.proj に渡されて使用されます。これにより、プロジェクト ファイル内のヒント パスをオーバーライドする参照アセンブリを見つける代替パスを指定できます。
ただし、ビルドがこの時点に達すると、次のエラーで失敗します。
SHFB: エラー BE0040: プロジェクト アセンブリが存在しません: D:\Build\Debug\wwwroot\bin\MyAssembly.dll
元のプロジェクトで指定されたデフォルトの出力パスです。
アセンブリの場所を SHFB に渡すための正しいメカニズムは何ですか?