2012-02-17 19 views
11

Tôi muốn sử dụng F # cho một số tác vụ rất cơ bản mà trước đó tôi đã sử dụng các tệp lô. Tôi có thể kết hợp các tệp fsx với fsi.exe và chạy nó chỉ bằng cách nhấp đúp vào chúng. Đó là tuyệt vời cho đến nay.Tôi có thể chạy các tệp fsx từ trong Visual Studio mà không cần thiết lập dự án không?

Tuy nhiên, đôi khi tôi có thể muốn tìm hiểu sâu hơn về mã và gỡ lỗi. Khi tôi mở tập tin fsx trong Visual Studio tôi không thể chạy nó và tôi cũng không thể chọn các dòng và sử dụng "Gửi đến tương tác", mặc dù.

Dường như với tôi như thể các lệnh đó chỉ hoạt động nếu bạn thiết lập dự án F # đầy đủ. Điều đó có vẻ là cồng kềnh (như một tập tin thay thế hàng loạt). Tôi tự hỏi đó là cách tiếp cận đúng? Tôi muốn có bánh của tôi và ăn nó! Tôi muốn một tập tin đơn giản mà tôi có thể thay đổi một cách nhanh chóng nhưng tôi cũng muốn khả năng sử dụng phân tích mọi thứ với Visual Studio theo yêu cầu.

CẬP NHẬT Tôi chỉ tìm ra bạn có thể mở giao diện điều khiển tương tác vào "Xem \ Khác Windows \ F # Interactive" và sau đó bạn có "Send to Interactive" lệnh.

Tôi vẫn thiếu khả năng để chạy các mã và đặt breakpoint, mặc dù ..

+0

Không, bạn không thể gỡ lỗi mã mà không có dự án. – ildjarn

+0

Vì vậy, đối với các tác vụ kịch bản cơ bản sử dụng bàn điều khiển tương tác F #, người dùng có thể nhận được hỗ trợ tốt nhất? – Christoph

+1

BTW: Lệnh "Gửi tới tương tác" cũng phải được liên kết với Alt + Enter (trừ khi bạn có Resharper ghi đè điều đó, tôi nghĩ). –

Trả lời

17

Như bạn đã phát hiện ra, bạn không cần phải tạo ra dự án sử dụng F # Interactive console. Tôi tin rằng các tính năng như gỡ lỗi ít quan trọng hơn khi bạn sử dụng F # để phát triển tương tác (hoặc viết kịch bản), bởi vì bạn có thể dễ dàng đánh giá từng bước để phân tích hành vi của nó chỉ bằng cách gửi các lệnh riêng lẻ đến FSI . Vì vậy, tôi không cảm thấy cần phải gỡ lỗi trong F # Interactive rất thường xuyên.

Mặc dù đây không thực sự là tính năng được hỗ trợ, bạn có thể gỡ lỗi mã trong tệp tập lệnh khi chỉ sử dụng F # Interactive. Bí quyết là đính kèm trình gỡ rối vào quy trình fsi.exe đang chạy phía sau tương tác F #.

Chỉ cần đi tới "Gỡ lỗi" -> "Đính kèm quy trình" rồi chọn "fsi.exe". Sau đó, bạn sẽ có thể đặt các điểm phanh trong tệp tập lệnh fsx và mã chạy trong F # Interactive sẽ bị hỏng. Như tôi đã nói, điều này không thực sự được hỗ trợ, nhưng nó thường hoạt động tốt cho mã trong các hàm. Tôi không thấy điều này là hữu ích thường xuyên, nhưng nó có thể hữu ích bây giờ và sau đó.

+0

Có, điều đó sẽ hoạt động. Tôi đoán một trong những nhu cầu để đặt một Console.ReadLine lúc đầu để giữ đánh giá cho đến khi trình gỡ lỗi được đính kèm, mặc dù. Có thể được ok vào những lúc mà một trong những thực sự cần phải gỡ lỗi. – Christoph

+0

@Christoph Bạn có thể đính kèm trình gỡ lỗi, đặt điểm ngắt và * sau đó * gửi mã tới F # Interactive (hoặc viết mã dưới dạng hàm và chạy hàm sau khi bạn đính kèm điểm ngắt). 'ReadLine' tiếc là không hoạt động trong giao diện điều khiển F # trong VS. –

+0

Ah, lần đầu tiên tôi nghĩ rằng quá trình FSI.exe là ngắn ngủi nhưng nó vẫn còn sống miễn là cửa sổ tương tác được giữ mở. Mặt khác, có vẻ như trình gỡ lỗi bị giới hạn khi gỡ lỗi một tệp fsx theo cách này. Tôi đã không thể khám phá các giá trị của các biến cục bộ xung quanh điểm ngắt khi tôi thử nó theo cách này. Tui bỏ lỡ điều gì vậy? – Christoph

Các vấn đề liên quan