Caution

2024年8月一杯でVisual Studio for Macの提供が廃止されることとなった.それにともない,今年は Visual Studio Code上でC# Dev KitおよびIonide for F# を用いた環境構築法を紹介することとする.Visual Studio を使いたい人は昨年度の環境構築法を参照されたし.

C#演習第5・6回課題ではクロスプラットフォームGUIフレームワークEto.Formsを用いるので,その環境をセットアップする.具体的な手順は「コマンドライン環境の設定」を行った後,VSCode上で動作確認を行う.

また,GTK用アプリケーションを作成したい人はGTKのインストールを参照する(現状Mac環境のみ記載.Windows環境は情報収集中).

コマンドライン環境の設定

ターミナル(WindowsだとPowerShell,Macだと"Terminal"や"iTerm2"など.VSCode内のターミナルでもよい)上で以下を実行する.

  1. 以下のコマンドを実行する(設定自体はこれで終わり).

    dotnet new install "Eto.Forms.Templates::*"

    Note

    2.8.0〜2.8.2にはテンプレートがコンパイルできないという不具合があるので,以前にテンプレートをインストールした人は上記によりテンプレートを更新する.

  2. (Macの場合のみ)これまでにインストール済でなければ,以下のコマンドを実行してXcode command line toolsをインストールする.

    xcode-select --install 

    いままでにXcodeをインストールしてなければ数GBほどのダウンロードが発生する.

  3. 確認のために以下を実行してみる.

    dotnet new list eto

    Note

    dotnetのバージョンによっては,dotnet new -l etodotnet new eto -lのように書かなけれならないかもしれない.

    たとえば,以下のように表示されるはず.

    これらのテンプレートは、入力: 'eto' と一致しました
    
    テンプレート名             短い名前  言語        タグ
    -------------------------  --------  ----------  ------------------
    Eto Application            etoapp    [C#],F#,VB  Cross Platform/Eto
    Eto Panel, Dialog or Form  etofile   [C#],F#,VB  Cross Platform/Eto

動作確認

  1. Eto.Formsプロジェクトを作成し,VSCodeで開く.以下は「VSCodeでフォルダを開いた後に,VSCode内のターミナルからプロジェクト/ソリューションを作成する」流れを紹介しているが,環境構築1で紹介した通り「ターミナルで予めプロジェクト/ソリューションを作成し,その後VSCodeでソリューションを開く」を行ってもよい.

    1. 適当なフォルダ(HelloEtoとする)を作成し,VSCodeでそのフォルダを開く.

    2. VSCode上のターミナル(メニューバーより「表示」→「ターミナル」あるいはJapanese Language Packを入れていないなら"View"→"Terminal")を開き,以下のコマンドを実行する.-slnは不要だが,どうせC# Dev Kitが生成することになる.

      dotnet new etoapp -sln 

      その後ls -F(Windowsだとdir)してみると以下のようなフォルダおよびファイルが生成されたのがわかる(Windowsだと表示は異なるが作成されるフォルダ・ファイルは同じ).

      $ ls -F 
      HelloEto/     HelloEto.Gtk/ HelloEto.Mac/ HelloEto.Wpf/ HelloEto.sln
  2. ビルドおよび実行してみる.

    Windowsの場合はHelloEto.Wpf以下のProgram.cs,Macの場合はHelloEto.Mac以下のProgram.csを開き(サイドバーからファイルを選択する), エディタ右上(アクティビティーバーにあるアイコンではない)の「再生ボタンの右下に虫がついたアイコン」(デバッグ実行を表す)をクリックする.

    あるいは,VSCode上のターミナルから,Windowsの場合は

    dotnet run --project HelloEto.Wpf 

    を,Macの場合は

    (cd HelloEto.Mac && dotnet run) 

    を実行することでプログラムを通常実行する(dotnet run --project HelloEto.Macでは実行に失敗する).

    はたまた,「実行とデバッグ」あるいはF5キーで(デバッグ)実行する場合は,やはり「デバッガーの選択」や「起動構成の選択」等について聞かれる.最初の質問には「C#」と回答したのでよいが,二個目の質問にはWindowsの場合は「HelloEto.Wpf」,Macの場合は「HelloEto.Mac」と回答する.GTKのインストールを行っていれば「HelloEto.Gtk」を選んでもよい.

    いずれの場合もビルドは自動的に行われる.

    Note

    Mac環境だと....Wpfプロジェクトはビルドできない.Win環境だと....Macはビルドできるが実行できない.

    • Windowsの場合の挙動
      1. しばらく待つと以下のようなウィンドウが表示される.

        image

      2. 「Click Me!」の部分をクリックするとダイアログが表示される.

      3. 実行を停止するには,上記ウィンドウの×ボタンを押せばよい.また,VSCodeの画面上部にデバッグ実行を制御するためのUIが表示されているので,□の形の停止っぽいボタンを押してもよい.

    • Macの場合の挙動
      1. しばらく待つと以下のようなウィンドウが表示される.

        image

      2. ツールバー上のボタン「Click Me!」は初期ウィンドウサイズだと隠れてしまっている.拡張して表示しよう.

        image

      3. 「Click Me!」の上の部分にマウスポインタを持ってくると,色が変わる部分があるのでそこをクリックするとダイアログが表示される.

        • 「Click Me!」自体はクリックできない.

        image

      4. デバッグ実行だと,Command + Qをを押したりメニューからQuitを選択したりしてもデバッグ実行自体は終了しない. VSCodeの画面上部にデバッグ実行を制御するためのUIが表示されているので,□の形の停止っぽいボタンを押す.

        dotnet run等でデバッグ実行でなく通常の実行を行った場合は,Command + Q を押すか,メニューからQuitを選択してプログラムを終了することができる.

        Important

        ウィンドウ左上の閉じるボタンはプログラムを終了させない.この挙動はMacの一般的なアプリケーションプログラムと同様である.

GTKのインストール

オプショナル.

Windows環境については情報収集中.

Mac

遅かれ早かれbrewは入れることになると思うので,そう手間は大きくないはず.

  1. Homebrewをトップページに書いてあることに従いインストールする.
  2. ターミナルから brew install gtk+3 を実行する
    • brew updateも必要かもしれない