Thậm chí nếu bạn chỉ cần thêm fsx
kịch bản để Visual Studio, bạn vẫn có thể biên dịch setup.fsx
vào một dự án bình thường cùng với các tệp khác (có thể là fs
), vì vậy bạn có thể giữ tập lệnh dưới dạng tệp tập lệnh bình thường trong Visual Studio và đồng thời tham chiếu nó từ một dự án hoặc từ công cụ dòng lệnh để tạo các thử nghiệm của bạn.
Tôi đã cố gắng làm điều đó với test.fsx
tập tin sau đây:
module Demo
#r "System.Xml.Linq.dll"
open System.Xml.Linq
let test() =
let d = XDocument(XElement(XName.Get("foo")))
d.ToString()
Bạn chắc chắn cần một số module Name
khai ngay từ đầu (để bạn có thể truy cập vào các chức năng từ các tập tin khác), nhưng nếu không nó có thể là bất kỳ tập tin fsx
. Tệp khác mà tôi đã sử dụng là test.fs
:
module Main
open Demo
test() |> printfn "%A"
Đây chỉ là để thử nghiệm, nhưng ở đây bạn có thể viết các bài kiểm tra đơn vị của mình. Nếu bạn biên dịch các tập tin với lệnh sau đây, bạn sẽ có được lắp ráp tiêu chuẩn mà bạn có thể vượt qua để xUnit (lưu ý, trình biên dịch có thể chọn thẻ #r
từ test.fsx
, chúng tôi không phải viết tài liệu tham khảo một cách rõ ràng):
fsc.exe --target:library test.fsx test.fs
Tôi nghĩ bạn có thể có cùng cấu hình trong Visual Studio nếu bạn thêm dự án thư viện và sau đó thêm liên kết vào tệp (có thể trỏ đến tệp ở nơi khác trong cấu trúc giải pháp của bạn) bằng cách sử dụng một cái gì đó như thế này trong tệp fsproj
:
<Compile Include="..\Eslewhere\In\Your\Project\Tree\File.fsx">
<Link>File.fsx</Link>
</Compile>
Lưu ý rằng khi bạn thêm fsx
tập tin bằng cách sử dụng "Thêm mục", nó được đánh dấu là "Bao gồm" nhưng không phải là "Biên dịch", do đó, nó không được biên dịch như là một phần của dự án. Ở trên nên bao gồm nó trong dự án và nó sẽ cho trình biên dịch để bao gồm nó trong hội đồng biên dịch quá.
Cảnh báo: nói rằng, tôi nghĩ tốt hơn nên kiểm tra các tệp dll
được biên dịch bằng các thử nghiệm đơn vị tiêu chuẩn. Nếu bạn muốn thử nghiệm các tệp fsx
, tôi sẽ chỉ thêm một vài dòng làm thử nghiệm ở cuối và chạy chúng bằng tay (chọn, Alt
+ Enter
). Lý do là các tệp fsx
được cho là thay đổi khá thường xuyên và vì vậy việc thử nghiệm quá vững chắc có thể hạn chế tính linh hoạt của bạn. Mặt khác, khi mã trở nên chắc chắn hơn, bạn nên chuyển nó sang tệp dll
.
nếu bạn viết mô-đun trên đầu trang trong fsx, bạn không thể thực thi nó trong fsi. thêm #if COMPILED mô-đun Demo #endif có vẻ ok – nicolas
Bạn có chắc là bạn có quyền truy cập vào không gian tên Demo khi được xác định trong tệp fsx không? Tôi gặp lỗi. tệp fsx ở trên trong danh sách dự án .. lỗi biến mất khi đổi tên thành fs, xuất hiện chuyển về fsx – nicolas
@nicolas Tôi chỉ cố chạy trình biên dịch bằng tay từ dòng lệnh. Tôi nghĩ rằng nó sẽ chỉ hoạt động nếu tệp 'fsx' được đánh dấu là Biên dịch - lệnh dòng lệnh mà Visual Studio in trong cửa sổ" Output "là gì? Bạn có thấy tập tin 'fsx' therE không? –