VSCodeでC# - 2024/6/9
Windows11に上げたので環境を作り直してみる。
C#はVisualStudioで書いていたが、VSCodeでできるようにしたい。
dotnetをインストール
.NET SDKをインストールする。
https://dotnet.microsoft.com/ja-jp/download/dotnet/8.0
現在(2024/6/9)は SDK 8.0.301が最新版みたいなので、Windowsの x64 をダウンロードする。
取得したインストーラからインストールする。
Powershell等から dotnet コマンドが使えるようになっていたらOK。
code:powershell
$ dotnet
# Usage: dotnet options
# Usage: dotnet path-to-application
# Options:
# -h|--help Display help.
# --info Display .NET information.
# --list-sdks Display the installed SDKs.
# --list-runtimes Display the installed runtimes.
# path-to-application:
# The path to an application .dll file to execute.
VSCodeの拡張機能を入れる
C# Dev Kit
https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit
.NET Core Test Explorer
https://marketplace.visualstudio.com/items?itemName=formulahendry.dotnet-test-explorer
NuGet Package Manger GUI
https://marketplace.visualstudio.com/items?itemName=aliasadidev.nugetpackagemanagergui
とりあえずこのあたりを入れておけば良いかなと思う。
たぶんもっと入れておいたほうが良いものはあると思う・・・
プロジェクトを作る
拡張機能を入れた状態でVSCodeを起動すると、ファイルエクスプローラに .NET プロジェクトを作成 というメニューが出てくるはず。
クリックすると、いくつかのプロジェクトのテンプレートを選べるので、適宜選ぶ。
今回は コンソールアプリ を選ぶ。
作成する場所、プロジェクト名を決めて作成できたら、VSCode上でそのプロジェクトが開かれる。
最初は、フォルダの名前が付いたソリューションファイルと、プロジェクト名として入力した名前の付いたフォルダが配置されている。
プロジェクトフォルダの中には、csprojファイルと、Program.csが配置されている。
プロジェクトを開いた最初の状態で、ビルドを確認する。
VSCodeのコマンドパレットから .NET コマンドが利用できるはずなので、 .NET Build を選択し、実行する。
プロジェクトフォルダに obj、binディレクトリが作成されていて、bin\Debug\net8.0 以下に、EXEファイルが吐き出されている。
このEXEファイルを指定したコマンドラインから実行すれば、Hello, World!が表示される。
ここからは、Program.csを改造するなり、新たにファイルを作るなりして、コードを作って行けば良い。
参考
https://learn.microsoft.com/ja-jp/dotnet/core/tutorials/with-visual-studio-code?pivots=dotnet-8-0
追記 - 2025/1/11
ビルドしたものをpublishするには、dotnet publishコマンドを使えば良い。
publishする場合の設定は、hoge.csprojファイルに記載する。
単一ファイルでexeを作成するには、設定ファイルに以下の記載が必要。
code: csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
・・・
<PublishSingleFile>true</PublishSingleFile> → これ
・・・
</PropertyGroup>
・・・
// ビルド後にコピーしたいファイルを指定
<Target Name="CopyCustomConetnt" AfterTargets="AfterBuild">
<Copy SourceFiles="config.debug.json" DestinationFiles="$(OutDir)\config.json" />
</Target>
・・・
// publish後にコピーしたいファイルを指定
<Target Name="CopyCustomContentOnPublish" AfterTargets="Publish">
<Copy SourceFiles="config.json" DestinationFolder="$(PublishDir)" />
</Target>
</Project>
コマンド実行の手順としては以下。
上記設定ファイルを用意しておく
dotnet clean -c Release --output <destination folder> を実行する
前にpublishしたものは消しておくとスムーズな気がする
dotnet publish <csproj file> --configuration Release --output <destination folder>
publishする
これで、destination folderの下にexeファイルができてるはず。
一連の流れはpublish.ps1などスクリプトにしておくと良いと思う。
(VSCode上でやる方法とかもあるかもしれないが調べてない。)
参考
https://learn.microsoft.com/ja-jp/dotnet/core/deploying/single-file/overview?tabs=cli
https://qiita.com/i-tanaka730/items/d46fdfb5c2f601e512c2
#csharp
#windows
#dotnet
#vscode