Я успешно установил MonoDevelop с привязками F # (под Linux Arch).mono - winforms не работает должным образом с f #
Если я попробую простой HelloWorld с winforms, я получаю это странное поведение: программа компилируется и строится успешно, но через мгновение после загрузки окна она просто закрывается и программа возвращается без сообщений об ошибках.
Я проверил журналы, и кажется, что ошибка не выбрасывается (кроме тех, которые обсуждаются здесь: GLib-CRITICAL **: Source ID XXX was not found when attempting to remove it, что в любом случае кажется несвязанным).
Код программы:
open System.Drawing
open System.Windows.Forms
[<EntryPoint>]
let main argv =
let form = new Form(TopMost = true, Text = "Hello World")
form.Show()
0 // return an integer exit code
Если я пытаюсь запустить его через интерактивную консоль, окно является своего рода замороженная: Я могу переместить его вокруг, но я не могу закрыть его (у для этого отключите монодебель).
Я также попытался скомпилировать его с помощью терминала, используя:
fsharpc Program.fs -pkg:dotnet.dll
mono Program.exe
, но он ведет себя точно так же, как если бы я бежал через MonoDevelop (открывается окно затем выключается). Кроме того, что F # работает нормально, я могу запускать консольные программы без каких-либо проблем.
Я также попытался запустить простую программу HelloWorld с C# в MonoDevelop, и она просто отлично работает.
Любые советы?
Попробованного минуту назад, он работал просто отлично :) Спасибо! Я читал, что не рекомендуется использовать Application.Run() в пользу form.Show(), но это, похоже, не так. Ну что ж. – mp85