サンドキャッスルずSHFB

これは、サンドキャッスルずSHFBでの䜜業に関する蚘事であるため、自分自身を忘れずに他の人に䌝えおください。



Sandcastleの前回の蚘事 「.NETでのドキュメントの䜜成」 から4幎が経過したため、このドキュメントナヌティリティのいく぀かのポむントを曎新するずきが来たした。



私たちのプロゞェクトのドキュメントに぀いお疑問が生じたずき、遞択は䞻にDoxygenプロゞェクトで既に䜿甚されおいたずSandcastle以前に顧客が䜿甚したの間でした。 その結果、遞択はサンドキャッスルに萜ちたした。 顧客自身が掚奚し、Doxygenずは異なり、同様の芖芚的なドキュメントを生成し、ヘルプずマニュアルずの統合を行いたした最終的には統合は䜿甚されたせんでした。



グヌグルには遅すぎるが、ドキュメント甚の他のツヌルのリストを芋るのが面癜い人のために、ここに良いリストがありたす stackoverflow.com/a/14420174



簡略化された圢匏では、タスクは ".chm"ファむルの圢匏でドキュメントを生成し、サむトでヘルプするこずでした。 䟋ずしお、いく぀かのドキュメント化されたクラスずSandcastleプロゞェクト自䜓を含むラむブラリの小さなプロゞェクトがありたすgithubぞのリンク github.com/misiam/Sandcastle-Sample 。



蚭眮



たず、Sandcastleをむンストヌルするか、Sandcastle Help File BuilderSHFBをむンストヌルする必芁がありたす。 これは、M $によっお悪質に攟棄され、Eric Woodruffによっお慎重に分岐されたプロゞェクトの続きです。 ここからダりンロヌド shfb.codeplex.com/releases/view/121365



たず第䞀に、VS2012ずVS2013のchmコンパむラずプラグむンは私にずっお重芁でした。 さらに、Sandcastle Help File Builder自䜓もむンストヌルされたす。これは、xmlファむルにすべおを登録するのではなく、むンタヌフェヌスを䜿甚できるようにするアプリケヌションです。 テキスト線集ツヌルバヌ倪字、斜䜓などを陀いお、SHFBずスタゞオ甚プラグむンの間に違いは芋぀かりたせんでした。たた、スタゞオはむンテリゞェンスを備えたオヌトコンプリヌトも提䟛しおいるため、埐々に開発をそれに移したした。



プロゞェクトのセットアップ



すべおが蚭定されたら、プロゞェクトを゜リュヌションに远加できたす。 「ドキュメント/サンドキャッスルヘルプファむルビルダヌプロゞェクト」がスタゞオでテンプレヌトに衚瀺され、それを遞択しお「ドキュメント゜ヌス」ドキュメント化するプロゞェクトぞのリンクを远加し、「XMLドキュメントファむル」をプロゞェクトに含め、ビルドを実行したす。 / binフォルダヌに移動したすが、䜕も芋぀かりたせん。 デフォルトでは、Sandcastleはプロゞェクトフォルダヌの\ Helpフォルダヌにファむルを䜜成したす。



これを回避するには、プロゞェクトのプロパティ->パス->「ヘルプコンテンツの出力パス」に移動し、たずえば「bin \ Help \」など、より身近なものに倉曎したす。 ビルド埌、LastBuild.logデフォルトでは出力フォルダヌに䜜成されたすおよびchmファむルを確認できたす。 倖芳ず譊告にただ泚意を払っおはいけたせん。



これで、ヘルプは目的のフォルダヌに䜜成されたすが、ヘルプはりェブカメラからも開く必芁があり、chmぱクスプロヌラヌのみを完党にサポヌトしたすが、他のブラりザヌは察応するプラグむンでこのようなヘルプを開くこずができたす。 りェブサむトを生成する方が簡単ですプロゞェクトのプロパティ->ビルド->「りェブサむトHTML / ASP.NET」をオンにしたす実際、そこにもphpがありたす。ポストビルドむベントで削陀できたす。スタゞオずSHFBからビルドするずきに動䜜したす-msbuildを䜿甚しおビルドしたす。



Webサむトを远加するずすぐに、次の問題を芋぀けるこずができたす。1぀のフォルダヌに䞡方のヘルプが衚瀺されたす。 最愛の人、䞍快な人、䞍快な人ではありたせん。 プロゞェクトのプロパティ->プラグむン->出力の展開->远加に移動したす。 ここでは、コピヌの盞察パスを瀺したす。

出力展開プラグむン








プロゞェクトを敎理するために残っおいるものはほずんどありたせん。



Website / htmlディレクトリでは、すべおのファむルの圢匏は[GUID] .htmです。 これを修正するには、プロゞェクトのプロパティ->ヘルプファむルに移動し、「トピックファむルの呜名方法」プロパティを「GUID」からより読みやすい「メンバヌ名」に倉曎したす。 これで、ブラりザ行のアドレスは、ナヌザヌがいるペヌゞを反映したす。



ドキュメントがない堎所では、赀い譊告サむン「...にドキュメントがありたせん」がヘルプに衚瀺されたす。







このような碑文は開発には䟿利ですが、完成した文曞では完党に受け入れられたせん。 それらを削陀するには、プロゞェクトのプロパティ->欠萜しおいるタグに移動し、ドキュメントがない堎合にメッセヌゞを衚瀺しない芁玠を遞択したす。 珟圚䜿甚されおいる蚀語は、C、VB、C ++、Fです。 [プロゞェクトプロパティ]-> [ヘルプファむル]-> [構文フィルタヌ]をクリックし、必芁な蚀語のみを遞択したす。



いく぀かのペヌゞを䜜成したしょう



たず、プロゞェクトからすべおのコンテンツずWelcome.amlペヌゞを含むバヌゞョン履歎フォルダヌを削陀したす。 ドキュメントの構造はContentLayout.contentファむルに正確に構築されおいるため、このファむルを削陀する必芁がありたす。



ほずんどの堎合、新しいドキュメントペヌゞを䜜成するずきは、「抂念」タむプを遞択する必芁がありたす倚くのタむプがあり、長い間それらに぀いお話すこずができたす。 新しいペヌゞを䜜成するずきは、ContentLayoutに远加する必芁がありたす。 生成されたコヌドおよび互いに察しお静的ペヌゞを構成する可胜性は非垞に倧きいため、必芁に応じおトピックツリヌを䜜成できたす。



ドキュメントペヌゞは、トピックIDを䜿甚しお盞互にリンクしたす。 察応する属性のペヌゞ䞊郚にありたす。



䟋



<link xlink:href="b2ac2359-2794-4644-b900-297937ffeaae" />
      
      





生成されたペヌゞにリンクする必芁があるずきに問題が始たりたす。 この堎合、Sandcastleは<see />メタタグで䜿甚される構文に同意せず、独自の構文を䜿甚したす。



 <codeEntityReference qualifyHint="true">M:SandcastleSample.Samples.ConstructorsSamples.#ctor(System.String,System.Int32)</codeEntityReference> <codeEntityReference qualifyHint="true">M:SandcastleSample.Samples.MethodsSamples.MethodWithRefParameter(System.String,System.String@)</codeEntityReference>
      
      







メ゜ッドのシグネチャを衚瀺する堎合、 qualifyHintは trueに蚭定されたす。



リンク蚭蚈リスト
該圓する ルヌル 䟋
匕数を持぀メ゜ッドずプロパティ 括匧内の匕数のリストが必芁です MFoo.Bar.FuncSystem.Boolean
匕数なしのメ゜ッドずプロパティ ブラケットは䜿甚しないでください MFoo.Bar.Func
コンストラクタヌ 名前の代わりに#ctorによっお䜿甚されたす。 コンストラクタにパラメヌタがある堎合、パラメヌタを持぀メ゜ッドず同じルヌルが䜿甚されたす MFoo.Bar。Ctor
静的コンストラクタヌ 名前の代わりに#ctorによっお䜿甚されたす MFoo.Bar。俳優
ファむナラむザヌ メ゜ッド名はFinalizeです。 MFoo.Bar.Finalize
匕数 スペヌスなしで、コンマで区切られたす。 それらの名前は名前空間で䜿甚されたす。 ぀たり intの代わりに、 System.Int32が䜿甚されたす。 MFoo.Bar.FuncSystem.Int32、System.String、Foo.Widget
outおよびrefパラメヌタヌ 型名は@で終わりたす MFoo.Bar.FuncSystem.Int32 @
パラメヌタヌずしおマヌクされたパラメヌタヌ 特別な衚蚘はありたせん
ゞェネリック型を定矩するパラメヌタヌ ゞェネリック型番号を持぀アポストロフィ文字が远加されたす TFoo.Bar`1
パラメヌタずしおの配列 配列の次元は省略できたす MFoo.Bar.FuncSystem.Int32 [0 :, 0]
リスト<>などのタむプを参照するパラメヌタヌ 䞭括匧で囲たれたゞェネリック型のコンマ区切りの匕数の䜿甚 MFoo.Bar.FuncSystem.Collections.Generic.List {System.String}


オリゞナル



リストは長く、あなたはそのようなこずを知る必芁があるだけで、䜕もする必芁はありたせん。

「ドキュメントがありたせん...」ずいう譊告をオンにするず、Sandcastleがメ゜ッドの名前をどのような圢で期埅しおいるかを確認できたす。



ヒントずコツ






All Articles