为什么我不能启动用F#编写的WPF应用程序?

时间:2016-03-18 01:47:22

标签: wpf f#

尝试构建用F#编写的WPF应用时收到以下警告:

  

程序的主模块为空:运行时不会发生任何事情

因此,我无法启动该应用程序。

我已经确认所有 AssemblyInfo.fs 文件都有" do()"在末尾。 我也玩过文件的顺序。

有什么建议吗?

更新

我在项目的末尾添加了一个文件。

该文件包含以下代码:

module Bootstrap

open System.Windows

[<EntryPoint>]
let main args =
    System.Windows.Application.Current.Run() |> ignore;
    // Return 0. This indicates success.
    0

当我尝试运行该文件时,我在Application.Current上遇到了一个空引用异常。

我的解决方案如下:

enter image description here

1 个答案:

答案 0 :(得分:5)

以下是使用FSharp.ViewModule.CoreFsXaml.Wpf软件包的最小工作示例:

MainWindow.xaml:

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:local="clr-namespace:ViewModel;assembly=fsxamltest">
    <Window.DataContext>
        <local:MainViewModel/>
    </Window.DataContext>
</Window>

ViewModel.fs:

namespace ViewModel
open FSharp.ViewModule
type MainViewModel() as me = inherit ViewModelBase()

App.fs:

open System
type App = FsXaml.XAML<"App.xaml">
[<STAThread;EntryPoint>]
let main _ = App().Root.Run()

的App.xaml:

<Application
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    StartupUri="MainWindow.xaml"/>

如果不起作用,请向我们展示完整代码或创建MCVE