Không, nó không nhận được bất kỳ cài đặt nào từ dự án, bạn phải mã hóa đường dẫn. (Đây là một kịch bản chúng tôi sẽ xem xét cải thiện cho một bản phát hành trong tương lai.) Hãy cẩn thận về đường dẫn 'Debug' so với 'Release'.
EDIT
Ok, wow, tôi đã tìm ra một cái gì đó hữu ích:
#r "EnvDTE"
#r "EnvDTE80"
#r "VSLangProj"
let appObj = System.Runtime.InteropServices.Marshal.
GetActiveObject("VisualStudio.DTE") :?> EnvDTE80.DTE2
let solnDir = System.IO.Path.GetDirectoryName(appObj.Solution.FileName)
let cfg = appObj.Solution.SolutionBuild.ActiveConfiguration.Name
let libraryDLLPath = System.IO.Path.Combine
[| solnDir; "Library1"; "bin"; cfg |]
//#r libraryDLL // illegal, since #r takes a string literal, but...
let props = appObj.Properties("F# Tools", "F# Interactive")
let cla = props.Item("FsiCommandLineArgs")
cla.Value <- sprintf "--optimize -I:\"%s\"" libraryDLLPath
appObj.ExecuteCommand("View.F#Interactive", "")
appObj.ExecuteCommand("OtherContextMenus.FSIConsoleContext.ResetSession", "")
#r "Library1.dll"
Execute mà như hai đoạn, mọi thứ đầu tiên nhưng dòng cuối cùng, và cuối cùng là dòng cuối cùng. Về cơ bản nó thay đổi cài đặt FSI của bạn bên trong VS và đặt lại phiên, vì vậy sau đó bạn chỉ có thể #r "MyLibrary.dll"
mà không có đường dẫn.
Nó là một hack khổng lồ, nhưng có vẻ như một số người có thể thấy nó hữu ích, vì vậy tôi đang chia sẻ nó.
Tập lệnh có thể nhận nơi nó đang chạy không? điều đó cũng sẽ tốt đẹp. – BuddyJoe
Lưu ý rằng methof này có thể khiến bạn gặp rắc rối nếu có nhiều hơn một trường hợp VS đang chạy trên hệ thống của bạn. –
rất hay. cảm ơn. upvotes – BuddyJoe