の呟きは 44
- (UPD ) #
docfxわかったこと
俺の環境だと...
docfx自体のインストールは
nuget install docfx.console
このコマンド実行したディレクトリにインストールされる…
(インストール先指定はnugetのコマンドラインオプションで指定する必要があるが…)
docfxプロジェクトのsrcディレクトリにドキュメント作りたいアプリのプロジェクトのディレクトリを配置する必要がある・・・
(srcディレクトリでgit cloneなりで取得すればいいのだろうけど・・・)
MSBuildのパスの指定が必要で
set MSBUILD_EXE_PATH=C:\Program Files\dotnet\sdk\5.0.400\MSBuild.dll
(SDKのバージョンあげるごとに書き換える必要が・・・)
docfx.jsonのmetadata.src.filesにはsrc/**.csを指定する
(src/**.csprojを指定するとヌルポで死ぬ…)
(*.csじゃなく**.csなのは理由が分からないが…もしかしてディレクトリを再帰的に探してマッチするパスを探すとかなんだろうか?)
(docfx.jsonを書き換えずもdocfx initの対話のときに指定できるが)あとはデフォルトの出力先である_siteディレクトリの中身をアップロードしたいとこに置いておけばOK...
- (UPD ) #
docfx.jsonのsrc指定はこれでもいけるぽい (※ただし、ビルド済みである必要があるが・・・
{
"metadata": [
{
"src": [
{
"files": [
"src/**.dll"
],
"exclude": [
"src/**Test/**",
"src/**/ref/**",
"src/**/obj/**"
]
}
],*.csにするとcs.temp.dll.dllになってしまうし
ビルド済みプロジェクトならdll名がイイカンジにはなるが・・・
(理想は*.csprojや*.slnでドキュメント生成できてくれることだが・・・理由不明のヌルポで死ななければな・・・*.fsはサポート外と出た・・・orz
F#をdllでやるとF#の形式じゃなくなるぽいな
まぁそれはそうだろうけど
*.vbprojもダメだな(まぁcsprojがダメならダメだろうな
どうも*.csでやると
下のようなコード内のコメントを抽出できるらしい・・・(*.dllでは無理・・・
/// <summary>
/// This property always returns a value < 1.
/// </summary>
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/xmldoc/recommended-tagsVBにもあるようだけど・・・
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/reference/language-specification/documentation-commentsNamespaceを書き込んだVBファイルでなら
そのコメントが出るな・・・うん・・・?F#にもあるぞ・・・
fsdocsとは・・?
https://docs.microsoft.com/ja-jp/dotnet/fsharp/language-reference/xml-documentationうーん、これもバージョンが合わないぽいなあ・・・
fsprojの構成が古いやつである必要があるっぽい・・・?
プロジェクトの構成の仕方が何か悪いのかもしれない
fsdocsの説明をちゃんと読む必要がありそううーん・・・
$ fsdocs build
skipping project 'FSFizzBuzz.fsproj' because it looks like a test project
no project files found, no API docs will be generated
cracking projects...原因これだよな・・・なんだよテストプロジェクトに見えるって・・・
skipping project 'FSFizzBuzz.fsproj' because it looks like a test projectこの条件満たしているように見えないけど
for exampleだし他にも条件が・・・?- (UPD ) #
(omitted)
原因わかった
- (UPD ) #
パスにtestの文字が入っていると終わる(笑)
FSharpContest2021とかいう名前でも死ぬ(笑)
https://github.com/fsprojects/FSharp.Formatting/blob/a888eb75609b2590de2b061d37fc1afb683f18b8/src/FSharp.Formatting.CommandTool/ProjectCracker.fs#L300-L306Issue投げるか迷う
何せ困ってない(俺は)(omitted)
再現
c:\temp\fsharp\ProgrammingContest2021\FizzBuzz
$ fsdocs build
skipping project 'FizzBuzz.fsproj' because it looks like a test project
no project files found, no API docs will be generated
cracking projects...
please set '<FsDocsLicenseLink>' in 'Directory.Build.props'
please set '<FsDocsReleaseNotesLink>' in 'Directory.Build.props'
please set '<Version>' in 'Directory.Build.props'
このドキュメント、何のコマンドで生成されるんだ・・・?
うーん、プロジェクトファイル読み込めないの厳しいなあ
引数や戻り値の説明ってどこに書くんだろう?
cs.temp.dll.dllって何だよ・・
謎エラーというか、ヌルぽ、な・・・俺のせいじゃない・・・
[21-10-16 02:51:56.924]Error:Error extracting metadata for C:/test2/src/FizzBuzz/FizzBuzz.csproj: System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません
場所 Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataWorker.<SaveAllMembersFromCacheAsync>d__13.MoveNext()
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
場所 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
場所 Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataWorker.<ExtractMetadataAsync>d__11.MoveNext()
1 Warning(s)
1 Error(s)これが似ているようで、ちょっと違うかなあ・・・
https://github.com/dotnet/docfx/issues/6799
寒いじょ
突然の、10月はやめてほしいじょ
アメリカこえーな
電車でレイプ事件とか・・・怖すぎ寒いぜ、バケモノやろう
docfxの_siteのところ
apiディレクトリだけじゃ機能しないっぽいなあ・・・これのせいか・・・
<script type="text/javascript" src="../styles/docfx.vendor.js"></script>
<script type="text/javascript" src="../styles/docfx.js"></script>
<script type="text/javascript" src="../styles/main.js"></script>
goのトップページのバーガーアイコン、いつの間にか直っているな・・・よかった