Đây là kịch bản:Làm thế nào để lệnh F # Interactive #I biết về đường dẫn dự án?
- Mở Visual Studio. Điều này đã được thực hiện trong VS2010 Pro.
- mở F # Interactive trong Visual Studio
- mở dự án với tập tin fsx
Lưu ý: Dự án và hồ sơ fsx là trongE:\<directories>\fsharp-tapl\arith
Gửi lệnh để F # Interactive từ file fsx
> System.Environment.CurrentDirectory;; val it : string = "C:\Users\Eric\AppData\Local\Temp"
tôi đã không mong đợi một thư mục Temp nhưng nó có ý nghĩa.
> #r @"arith.exe" Examples.fsx(7,1): error FS0082: Could not resolve this reference. Could not locate the assembly "arith.exe". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. (Code=MSB3245) Examples.fsx(7,1): error FS0084: Assembly reference 'arith.exe' was not found or is invalid
Lỗi #r chỉ ra rằng F # Interactive hiện không biết vị trí của arith.exe.
> #I @"bin\Debug" --> Added 'E:\<directories>\fsharp-tapl\arith\bin\Debug' to library include path
Vì vậy, chúng tôi cho F # tương tác vị trí của arith.exe. Lưu ý rằng đường dẫn KHÔNG phải là đường dẫn tuyệt đối mà là đường dẫn con của dự án. Tôi đã không nói với F # Interactive vị trí của dự án arith
E:\<directories>\fsharp-tapl\arith
> #r @"arith.exe" --> Referenced 'E:\<directories>\fsharp-tapl\arith\bin\Debug\arith.exe'
Và F # Interactive phát hiện một cách chính xác arith.exe báo cáo đường dẫn tuyệt đối chính xác.
> open Main > eval "true;" ;; true val it : unit =()
Điều này xác nhận rằng arith.exe đã được tìm thấy, tải và hoạt động chính xác.
Vậy làm thế nào lệnh F # Interactive #I biết đường dẫn dự án vì thư mục hiện tại không có trợ giúp?
Những gì tôi thực sự sau là từ bên trong F # Interactive làm thế nào để có được đường dẫn đến dự án, E:\<directories>\fsharp-tapl\arith
.
EDIT
> printfn __SOURCE_DIRECTORY__;;
E:\<directories>\fsharp-tapl\arith
val it : unit =()
này là nhờ thực sự hữu ích ... cho bất cứ ai quan tâm đến Mathias Brandewinder có một số [lời khuyên tuyệt vời ] (http: // brandewinder.com/2016/02/06/10-fsharp-scripting-tips /) để làm việc trong các tập lệnh fsx. Tôi gặp sự cố khi truy cập gói nuget từ tệp tập lệnh trong thư viện, #I @ ".. \ packages" đã giải quyết được sự cố –