dotnetコマンドの使い方

dotnetコマンドの覚え書き
プロジェクトのビルドや発行/nugetパッケージの追加などのコマンドリファレンス

目次

ダウンロードとインストール

公式サイトよりSDKをダウンロード・実行しインストールする

dotnet-sdk-6.0.402-osx-x64.pkg

インストールされているSDKバージョンの確認

% dotnet --list-sdks
3.1.100 [/usr/local/share/dotnet/sdk]
3.1.200 [/usr/local/share/dotnet/sdk]
3.1.300 [/usr/local/share/dotnet/sdk]
3.1.302 [/usr/local/share/dotnet/sdk]
6.0.402 [/usr/local/share/dotnet/sdk]

プロジェクトテンプレート一覧を表示

% dotnet new -l
これらのテンプレートは、入力:  と一致しました

テンプレート名                                短い名前             言語        タグ                                 
--------------------------------------------  -------------------  ----------  -------------------------------------
ASP.NET Core Empty                            web                  [C#],F#     Web/Empty                            
ASP.NET Core gRPC Service                     grpc                 [C#]        Web/gRPC                             
ASP.NET Core Web API                          webapi               [C#],F#     Web/WebAPI                           
ASP.NET Core Web App                          webapp,razor         [C#]        Web/MVC/Razor Pages                  
ASP.NET Core Web App (Model-View-Controller)  mvc                  [C#],F#     Web/MVC                              
ASP.NET Core with Angular                     angular              [C#]        Web/MVC/SPA                          
ASP.NET Core with React.js                    react                [C#]        Web/MVC/SPA                          
ASP.NET Core with React.js and Redux          reactredux           [C#]        Web/MVC/SPA                          
Blazor Server App                             blazorserver         [C#]        Web/Blazor                           
   :   :   :
   :   :   :

ビルド

% dotnet build <プロジェクトファイル>

ビルド ランタイム指定

# OSX
% dotnet build <プロジェクトファイル> --runtime osx.10.11-x64
# Linux全般
% dotnet build <プロジェクトファイル> --runtime linux-x64
# Ubuntu
% dotnet build <プロジェクトファイル> --runtime ubuntu.18.04-x64

ランタイムについて

詳しくはこちら → .NET Core の RID カタログ

実行

% dotnet run -p <プロジェクトファイル>

発行

% dotnet publish -c Release -o publish <プロジェクトファイル>

発行 Environment指定

% dotnet publish -c Release -p:EnvironmentName=Release -o publish <プロジェクトファイル>

プロジェクトとソリューションの作成

コンソールプロジェクト”app”とクラスライブラリプロジェクト”lib”を含むソリューション”product”を作成する場合の実行例

# 使用するSDKバージョン - これでカレントディレクトリに global.json が作成される
$ dotnet new globaljson --sdk-version 3.0.100
# プロジェクトの作成
$ dotnet new console -n app
$ dotnet new classlib -n lib
# ソリーションの作成
$ dotnet new sln -n product
# ソリューションにプロジェクトを追加
$ dotnet sln ./product.sln add ./app/app.csproj 
$ dotnet sln ./product.sln add ./lib/lib.csproj 
# appプロジェクトの参照にlibプロジェクトを追加
$ dotnet add app/app.csproj reference lib/lib.csproj

完了後のディレクトリイメージ

-- product.sln
-- global.json
-- app
    +-- app.csproj
-- lib
    +-- lib.csproj

プロジェクトが使用しているパッケージの一覧

% dotnet list <プロジェクトファイル> package

更新があるパッケージの確認

% dotnet list <プロジェクトファイル> package --outdated

プロジェクトにnugetパッケージを追加

nugetパッケージ System.Drawing.Commonをプロジェクトに追加する場合の実行例

% dotnet add <プロジェクトファイル> package System.Drawing.Common

プロジェクトからnugetパッケージを取り除く

nugetパッケージ System.Drawing.Commonをプロジェクトから除去する場合の実行例

% dotnet remove <プロジェクトファイル> package System.Drawing.Common