カテゴリー
Microsoft

Mac で dotnet コマンドで C# の Hello World を出力するだけのコンソールプロジェクトを既存ソリューションに追加する方法

まとめ

実践

dotnet new console -n MyConsole
テンプレート "コンソール アプリ" が正常に作成されました。

作成後の操作を処理しています...
/Users/oki2a24/trial_csharp/HelloWorld/MyConsole/MyConsole.csproj を復元しています:
  Determining projects to restore...
  Restored /Users/oki2a24/trial_csharp/HelloWorld/MyConsole/MyConsole.csproj (in 491 ms).
正常に復元されました。

dotnet sln MySolution.sln add MyConsole/MyConsole.csproj
プロジェクト `MyConsole/MyConsole.csproj` をソリューションに追加しました。

cd MyConsole/

dotnet run
Hello, World!

トライアルアンドエラーなど

あれ? dotnet run が成功しない。。。

dotnet run
実行するプロジェクトが見つかりませんでした。プロジェクトが /Users/oki2a24/trial_csharp/HelloWorld に存在することを確認するか、--project を使用してパスをプロジェクトに渡してください。

出力をそのまま Google 検索した。

なるほど、作成したディレクトリで実行するのではなく、作成されてたプロジェクトのディレクトリへ移動して、そこで実行すれば良さそう♪

結果、うまくいきました♪

作成されたファイルを見る。

dotnet run が成功した時、文字列が出力されたのでこれでグレップしたところ、ヒットしたのは Program.cs

ということはまず実行されるファイルは Program.cs 。これの中身をいじっていけばカスタマイズできるということ。中身を中身を見てみる。

// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");

これだけ?シンプルで良いですね。1行目のリンク先を見ると、以前の書き方に戻す方法の案内なども書かれていました。

おまけ。プロジェクト作成で作成されたもの一覧。

tree
.
├── MyConsole.csproj
├── Program.cs
├── bin
│   └── Debug
│       └── net8.0
│           ├── MyConsole
│           ├── MyConsole.deps.json
│           ├── MyConsole.dll
│           ├── MyConsole.pdb
│           └── MyConsole.runtimeconfig.json
└── obj
    ├── Debug
    │   └── net8.0
    │       ├── MyConsole.AssemblyInfo.cs
    │       ├── MyConsole.AssemblyInfoInputs.cache
    │       ├── MyConsole.GeneratedMSBuildEditorConfig.editorconfig
    │       ├── MyConsole.GlobalUsings.g.cs
    │       ├── MyConsole.assets.cache
    │       ├── MyConsole.csproj.CoreCompileInputs.cache
    │       ├── MyConsole.csproj.FileListAbsolute.txt
    │       ├── MyConsole.dll
    │       ├── MyConsole.genruntimeconfig.cache
    │       ├── MyConsole.pdb
    │       ├── apphost
    │       ├── ref
    │       │   └── MyConsole.dll
    │       └── refint
    │           └── MyConsole.dll
    ├── MyConsole.csproj.nuget.dgspec.json
    ├── MyConsole.csproj.nuget.g.props
    ├── MyConsole.csproj.nuget.g.targets
    ├── project.assets.json
    └── project.nuget.cache

9 directories, 25 files

おわりに

生成 AI に C# のプログラムを提案してもらった時に実行をつけてもらうと、コンソールアプリのような感じでした。

そこで、そのままコピペで動かせる環境が欲しいと思い、今回の投稿となりました。

ちなみに、生成 AI の実行プログラムは、 .NET 5 以前のシンプルではないバージョンだったので、削ったり移動したりしてエラーを解消して試しました。

以上です。

コメントを残す