usakdsteen

ゆうさくですてぃーん

2021年10月17日(Sun)の独り言

の呟きは 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がダメならダメだろうな

          •  #

            *.vbもダメらしい・・・
            サポート外とすら出ない・・・

            •  #

              *.dllでやると当然、C#APIリファレンスになるよな・・・

              •  #

                虚無

              •  #

                VBもF#もサポートするみたいな書き方なんなの・・・

                f:id:neetsdkasu:20211017185644p:plain
                •  #

                  VisualStudio2017経由じゃないとダメってことなんかな・・・?

            •  #

              VBがダメじゃなくNamespaceで名前空間設定してやらないと出ない・・・?

              •  #

                なるほどな・・・

                dotnet cliでのVBプロジェクトは名前空間がvbprojに書き込まれるから・・・

              •  #

                *.vbで出るようになったからといって
                vb.temp.dll.dllは悲しいな・・・

                •  #

                  そして生成されるドキュメントは、VBじゃなくC#になっているという

        •  #

          どうも*.csでやると
          下のようなコード内のコメントを抽出できるらしい・・・(*.dllでは無理・・・

          /// <summary>
          /// This property always returns a value &lt; 1.
          /// </summary>

          https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/xmldoc/recommended-tags

          •  #

            VBにもあるようだけど・・・

            https://docs.microsoft.com/ja-jp/dotnet/visual-basic/reference/language-specification/documentation-comments

            •  #

              Namespaceを書き込んだVBファイルでなら
              そのコメントが出るな・・・

            •  #

              うん・・・?F#にもあるぞ・・・
              fsdocsとは・・?

              https://docs.microsoft.com/ja-jp/dotnet/fsharp/language-reference/xml-documentation

              •  #

                うーん、これもバージョンが合わないぽいなあ・・・

                •  #

                  fsprojの構成が古いやつである必要があるっぽい・・・?

                  •  #

                    dotnetのやつでも動いてるらしいし

                    俺が何か問題がある

                    •  #

                      fsdocs自体がdotnet cliコンパイルしてるぽいし

                      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だし他にも条件が・・・?

                      f:id:neetsdkasu:20211017223759p:plain
                      •  (UPD ) #

                        (omitted)

                    •  #

                      原因わかった

                      •  (UPD ) #

                        パスにtestの文字が入っていると終わる(笑)

                        FSharpContest2021とかいう名前でも死ぬ(笑)

                        https://github.com/fsprojects/FSharp.Formatting/blob/a888eb75609b2590de2b061d37fc1afb683f18b8/src/FSharp.Formatting.CommandTool/ProjectCracker.fs#L300-L306

                        •  #

                          Issue投げるか迷う

                          何せ困ってない(俺は)

                          •  #

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

            •  #

              このドキュメント、何のコマンドで生成されるんだ・・・?

  •  #

    うーん、プロジェクトファイル読み込めないの厳しいなあ

    f:id:neetsdkasu:20211017004801p:plain
    •  #

      引数や戻り値の説明ってどこに書くんだろう?

      f:id:neetsdkasu:20211017004811p:plain
      •  #

        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)

  •  #

    寒いじょ

    •  #

      突然の、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のトップページのバーガーアイコン、いつの間にか直っているな・・・よかった

 < の独り言 | の独り言 | の独り言 >