Нет, он не получает никаких настроек из проекта, вам нужно жестко прописать путь. (Это сценарий, который мы рассмотрим для улучшения в будущем выпуске.) Также будьте осторожны с путями «Отладка» и «Выпуск».
EDIT
Хорошо, вау, я понял что-то полезное:
#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"
Выполните это как два фрагмента, сначала все, кроме последней строки, и, наконец, последнюю строку. Он в основном меняет ваши настройки FSI внутри VS и сбрасывает сеанс, поэтому впоследствии вы можете просто #r "MyLibrary.dll"
без пути.
Это гигантский хак, но кажется, что некоторые люди могут найти его полезным, поэтому я делюсь им.