No, no obtiene ninguna configuración del proyecto, tiene que codificar la ruta. (Este es un escenario que veremos cómo mejorar para una versión futura). Tenga cuidado con las rutas 'Debug' versus 'Release' también.
EDITAR
Ok, wow, me di cuenta de algo útil:
#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"
ejecutar ese como dos fragmentos, primero de todo pero la última línea, y, finalmente, la última línea. Básicamente cambia su configuración de FSI dentro de VS y restablece la sesión, por lo que posteriormente puede simplemente #r "MyLibrary.dll"
sin una ruta.
Es un hack gigante, pero parece que algunas personas pueden encontrarlo útil, así que lo estoy compartiendo.
¿Puede una secuencia de comandos continuar desde donde se está ejecutando? eso también sería bueno. – BuddyJoe
Tenga en cuenta que este methof puede ocasionarle problemas si hay más de una instancia de VS ejecutándose en su sistema. –
muy bueno. Gracias. votaciones – BuddyJoe