blog

作成日 : 2023/09/13
更新日 : 2023/09/13

.NET CLIを利用したソリューションの枠組み作成方法

概要

.NET CLIでソリューションを作成し、 ソリューションの下にプロジェクトとdocfx用のディレクトリを作成する。

.NET CLIをDockerコンテナ上で動作させる例を示す。

最終的には、以下のディレクトリ構成となる。 ソリューション名、プロジェクト名は適宜変更する。

.
|- NewSolution/
  |- NewProject/
  |- docfx/

Dockerコンテナの準備

Dockerfile、compose.ymlを用意する。

cat << 'EOS' > Dockerfile
FROM mcr.microsoft.com/dotnet/sdk:6.0

RUN : \
  && apt-get update \
  && apt-get install -y vim \
  && :
EOS

cat << 'EOS' > compose.yml
services:
  dotnet:
    build: .
    volumes:
      - /etc/group:/etc/group:ro
      - "${PWD}:/work"
    tmpfs: /tmpfs
    working_dir: /work
    environment:
      - HOME=/tmpfs
    stdin_open: true
    tty: true
EOS

.NET CLI実行用コンテナを実行する。

# compose.yml内のdotnetサービスを実行する
docker compose run --rm -u $(id -u):$(id -g) -p 8080:8080 dotnet

手順

コンテナ上で以下コマンドを実行する。

# ソリューションの作成
mkdir NewSolution
cd NewSolution
dotnet new sln

# プロジェクトの作成
mkdir NewProject
cd NewProject
# テンプレートをclasslibで作成する場合
dotnet new classlib

# ソリューションに作成したプロジェクトを追加
cd ..
dotnet sln add ./NewProject

# docfx用のディレクトリ作成
mkdir docfx
cd docfx
dotnet new tool-manifest
dotnet tool update docfx
dotnet docfx init --quiet -o .
vim docfx.json

docfx.jsonを以下のように編集する。

@@ -3,8 +3,9 @@
     {
       "src": [
         {
+          "src": "..",
           "files": [
-            "bin/**/*.dll"
+            "/NewProject/**.csproj"
           ]
         }
       ],

docfxのプレビュー用のサーバを起動する。

dotnet docfx -n 0.0.0.0 --serve

ブラウザで、http://localhost:8080 にアクセスして、docfxをプレビューする。

参考情報

docfxについて

https://dotnet.github.io/docfx/

.NET CLIについて

https://learn.microsoft.com/ja-jp/dotnet/core/tools/