C#の開発環境もVSCodeで (build, run, publish)
Back
Alt+HOME
VSCodeの環境では、Visual Studio IDEのように発行などのGUIは無いので、dotnetコマンドで行う。
build と run の復習
PowerShell又はVSCodeの最下部のタブ[ターミナル]にて次のようなコマンドを実行すると、アプリが立ち上がりフォームが表示される。
ただし、前回のアイコンやイメージが所定の場所にない場合やパスの記述に間違いが有った場合はエラーもフォームも表示されず終了する。
PS X:\TLMForwarder> dotnet build
Determining projects to restore...
復元対象のすべてのプロジェクトは最新です。
TLMForwarder -> X:\TLMForwarder\Debug\net8.0-windows\win-x64\TLMForwarder.dll
ビルドに成功しました。
0 個の警告
0 エラー
経過時間 00:00:01.65
PS X:\TLMForwarder> dotnet run
リリース版の発行はどうする (publish)
- では、Visual Studio IDE に備わっている[発行]はメニューにも無い、どうするのだろう。
dotnet publish -r win-x64 -p:PublishSingleFile=true --self-contained false
Determining projects to restore...
復元対象のすべてのプロジェクトは最新です。
TLMForwarder -> X:\TLMForwarder\bin\Release\net8.0-windows\win-x64\TLMForwarder.dll
TLMForwarder -> X:\TLMForwarder\bin\Release\net8.0-windows\win-x64\publish\
- Visual Studio の場合は発行先のフォルダが指定できた。似たような事をやってみる。
dotnet publish -r win-x64 -p:PublishSingleFile=true --self-contained false -o c:/users/USER/desktop/TLMForwarder
Determining projects to restore...
復元対象のすべてのプロジェクトは最新です。
C:\Program Files\dotnet\sdk\8.0.302\Current\SolutionFile\ImportAfter\Microsoft.NET.Sdk.Solution.targets(36,5): warning
NETSDK1194:ソリューションのビルド時に "--output" オプ ションはサポートされていません。ソリューション レベルの出力パスを
指定すると、すべてのプロジェクトで出力が同じディレクトリにコピーされ、ビルドの一貫性が失われる可能性があります。
[X:\TLMForwarder\TLMForwarder.sln]
TLMForwarder -> X:\TLMForwarder\bin\Release\net8.0-windows\win-x64\TLMForwarder.dll
TLMForwarder -> c:\users\USER\desktop\TLMForwarder\
デスクトップのフォルダー内を確認すると一応問題なくファイルは発行されていたが、さらに複雑になって来ると問題が生じる事も有るだろう。
- オプションの概要
- -p:PublishSingleFile=true
- 単一ファイルの作成
- --self-contained=false
- 自己完結しない(.Netが別途インストールされている必要有り)
今回の実例 TLMForwarder.exe 487 kB
- --self-contained=true
- .NETのインストールを強制しないが、とんでもない容量となる
今回の実例 TLMForwarder.exe 146 MB
dotnet コマンドの一覧表示
PS > dotnet -h
使用法: dotnet [runtime-options] [path-to-application] [arguments]
.NET アプリケーションを実行します。
runtime-options:
--additionalprobingpath 調査ポリシーと調査対象アセンブリを含むパス。
--additional-deps 追加の deps.json ファイルへのパス。
--depsfile .deps.json ファイルへのパス。
--fx-version アプリケーションを実行するために使用するインストール済み Shared Framework のバージョン。
--roll-forward フレームワーク バージョン (LatestPatch、Minor、LatestMinor、Major、LatestMajor、Disable) にロールフォワードします。
--runtimeconfig .runtimeconfig.json ファイルへのパス。
path-to-application:
実行するアプリケーション .dll ファイルへのパス。
使用法: dotnet [sdk-options] [command] [command-options] [arguments]
.NET SDK コマンドを実行します。
sdk-options:
-d|--diagnostics 診断出力を有効にします。
-h|--help コマンド ラインのヘルプを表示します。
--info .NET 情報を表示します。
--list-runtimes インストール済みランタイムを表示します。
--list-sdks インストール済み SDK を表示します。
--version 使用中の .NET SDK バージョンを表示します。
SDK コマンド:
add .NET プロジェクトにパッケージまたは参照を追加します。
build .NET プロジェクトをビルドします。
build-server ビルドによって開始されたサーバーとやり取りします。
clean .NET プロジェクトのビルド出力をクリーンします。
format プロジェクトやソリューションにスタイルのユーザー設定を適用します。
help コマンド ラインのヘルプを表示します。
list .NET プロジェクトのプロジェクト参照を一覧表示します。
msbuild Microsoft Build Engine (MSBuild) コマンドを実行します。
new 新しい .NET プロジェクトまたはファイルを作成します。
nuget 追加の NuGet コマンドを提供します。
pack NuGet パッケージを作成します。
publish .NET プロジェクトを配置のために公開します。
remove .NET プロジェクトからパッケージまたは参照を削除します。
restore .NET プロジェクトに指定されている依存関係を復元します。
run .NET プロジェクトの出力をビルドして実行します。
sdk .NET SDK のインストールを管理します。
sln Visual Studio ソリューション ファイルを変更します。
store 指定されたアセンブリをランタイム パッケージ ストアに格納します。
test .NET プロジェクトに指定されているテスト ランナーを使用して、単体テストを実行します。
tool .NET のエクスペリエンスを向上するツールをインストールまたは管理します。
vstest Microsoft Test Engine (VSTest) コマンドを実行します。
workload オプションのワークロードを管理します。
バンドルされたツールからの追加コマンド:
dev-certs 開発証明書を作成し、管理します。
fsi F# Interactive を開始するか、F# スクリプトを実行します。
user-jwts 開発中の JSON Web トークンを管理します。
user-secrets 開発ユーザーのシークレットを管理します。
watch ファイルが変更されたときにコマンドを実行するファイル ウォッチャーを起動します。
コマンドに関する詳細情報については、'dotnet [command] --help' を実行します。
Back
Alt+HOME
この 作品 は
クリエイティブ・コモンズ 表示 - 非営利 - 改変禁止 4.0 国際 ライセンス
の下に提供されています。
English
Powered by