.NET 5, F#でWinFormsを使う方法

1 min read読了の目安(約1200字

使用ツール

概要

.fsproj<PropertyGroup></PropertyGroup> 内を変更する。

  • <TargetFramework>net5.0-windows</TargetFramework>
  • <UseWindowsForms>true</UseWindowsForms>

説明

.NET CLI でプロジェクトを作る際に指定するテンプレートには WinForms 用の winforms がありますが、F# だと対応していないので System.Windows.Forms を参照できるように自分で設定する必要があるようです。

手順

console でプロジェクトを作成する

dotnet new console -lang "F#"

.fsproj を変更する

OutputType はそのままでも問題ない

  <Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
+     <OutputType>WinExe</OutputType>
-     <OutputType>Exe</OutputType>
+     <TargetFramework>net5.0-windows</TargetFramework>
-     <TargetFramework>net5.0</TargetFramework>
      <RootNamespace>プロジェクト名</RootNamespace>
+     <UseWindowsForms>true</UseWindowsForms>
    </PropertyGroup>

    <ItemGroup>
      <Compile Include="Program.fs" />
    </ItemGroup>

  </Project>

動作の確認

Program.fs を変更する。
問題が無ければ空のウィンドウが表示されます。

open System.Windows.Forms

let form = new Form()
Application.Run(form)

end