f#WPF VS2012项目中的printfn和debug输出

时间:2013-02-10 17:54:30

标签: wpf f# visual-studio-2012

我在F#中试验WPF。 Visual Studio 2012有几个在线项目模板:

  • F#& C#Hybrid MVVM。用于视图的标准C#WPF可执行文件和其余的f#libs。
  • Pure F#MVVM
  • Pure F#Empty

我从第一个选项开始,但后来切换到纯f#解决方案。 还有一个我无法解决的问题。

我再也看不到VSF输出窗口中的printfn结果了。虽然如果我设置断点,我会看到代码已经到达。

以下是一个示例:

module MainApp
open System
open System.Windows
open System.Windows.Controls
open FSharpx

type MainWindow = XAML<"MainWindow.xaml">

let loadWindow() =
    let window = MainWindow()

    printfn "%s" "Test"

    window.Root

[<STAThread>]
(new Application()).Run(loadWindow()) |> ignore

这是由模板创建的App.fs,只需添加一个 - printfn。输出 - 没有。

我想知道是什么让它与众不同。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您可以使用System.Diagnostics.Debug.WriteLine写入VS Output窗口。必须定义TRACE常量,默认情况下在调试中。

printfn写入stdout,它是控制台应用程序中的控制台窗口。

答案 1 :(得分:2)

或者,您可以将项目设置为控制台应用程序,因此您将拥有一个控制台窗口以及WPF窗口,并且您可以照常使用printfn。