2013-02-10 70 views
1

我正在F#中试验WPF。 Visual Studio 2012有几个在线项目模板:F#WPF VS2012项目中的printfn和调试输出

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

我开始了第一个选项,但后来改用纯F#的解决方案。 还有一个问题我无法解决。

我在VS输出窗口中看不到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。输出 - 没有。

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

回答

3

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

printfn写入标准输出,它是控制台应用程序中的控制台窗口。

+0

谢谢菲尔!这工作。 – Pasho 2013-02-10 18:47:44

2

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