2016-09-12 11 views
5

Verilen basit bir F # konsol uygulaması: Ben ctrl F5 Görsel içinde yapacakları aynı şekilde konsol uygulamasını başlatmak için yapmanız gereken ne yapıyoruzVS Code'dan bir F # konsol uygulaması geliştiren Nasıl

[<EntryPoint>] 
let main argv = 
    printfn "Hello world" 
    Console.ReadLine() |> ignore 
    0 

Stüdyo. Ben Fake.ProcessHelper kullanarak SAHTE inşa komut dosyası oluşturmak çalışan denedim:

Target "Run" (fun _ ->  

     let exe = @"C:\Source\code\fs_console_app\build\fs_console_app.exe" 
     let errorCode = Shell.AsyncExec(exe, "", buildDir) 
     ()  
    ) 

Ctrl F5 ben şu yapı raporunu almak vurmak:

Target  Duration 
------  -------- 
Build  00:00:00.3916039 
Run  00:00:00.0743197 
Total:  00:00:00.5605493 
Status: Ok 

Ama çalıştırmadan konsol uygulaması hiçbir iz ve giriş için bekliyor.

cevap

2

Ben yorum yapmayı tercih ederdim ama çok uzun olurdu, bu daha fazla bir geçici cevap olarak düşünmüyorum, çünkü Sahte ile aşina değilim. Benim tahminim, Run Hedefinizin gerçekten yürütülmesi, ancak muhtemelen AsyncExec tarafından yutulması veya sadece Sahte çıkış penceresinde gösterilmesi (Exec'yi deneyin) ama yeni bir pencere açmıyor olmasıdır.

Sadece bir runcmd.bat (eğer pencerelerde farzederek) oluşturun ve içine aşağıdaki koymak, bu temizlen edebileceğiniz gibi dosya oluşturma dizinde değil emin olabiliriz:

start C:\Source\code\fs_console_app\build\fs_console_app.exe

Yeni bir cmd penceresini başlatmaya başlamanız gerekiyor. Bu

vb başka bir şey tabii ki, bash veya powershell, olabilir Sonra build.fsx içindeki: Sahte (Ctrl + Shift + P yoluyla) ve Çalıştır almak Şimdi

Target "Run" (fun _ ->  

     let exe = "path/to/runcmd.bat" 
     printfn "%A" "Hello World" 
     Shell.Exec(exe) |> ignore 

    ) 

// Build order 
"Clean" 
    ==> "Build" 
    ==> "Run" 
    ==> "Deploy" 

kaçarsam, derler, yeni bir komut satırı başlatır ve ReadLine için bekler. Ayrıca Ctrl + F5 ile çalışır.

İlgili konular