2013-02-10 47 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。