F# interactive: Reference a project in currently open solution

前端 未结 6 891
忘掉有多难
忘掉有多难 2021-01-01 10:22

I would like to use the F# interactive console with the projects in the currently open solution in Visual Studio 2010. Is there a quick and easy way to add a reference in t

相关标签:
6条回答
  • 2021-01-01 10:58

    If it's a project you reference often, you can add an 'always' reference to the FSI command line, under Tools->Options->F# Tools->F# interactive options. Add a -r switch like:

    -r "C:\Users\yaddayadda\MyDll.dll"
    
    0 讨论(0)
  • 2021-01-01 10:59

    I've got lines like this at the top of my .fs file:

    #if INTERACTIVE
    #r @"C:\path\to\some.dll"
    #I @"C:\Users\bford\path\to\a\project\in\this\solution\bin\Debug"
    #r "Project.name"
    #endif
    

    Alt-Enter now drops me into fsi with all the required stuff loaded

    0 讨论(0)
  • 2021-01-01 11:10

    I don't think there is any direct way to reference a project in the solution. The best way I can think of is to add a FSX file somewhere to your project with the #r directive:

    #r @"bin\Debug\YourProject.dll"
    

    Then you can at least reference the compiled DLL file simply by hitting Alt+Enter in Visual Studio. As far as I know, you cannot reference the project - you can only reference an assembly.

    Currently, F# Interactive is really disconnected from the project system in Visual Studio. I suppose that closer integration would be quite useful (but probably difficult to provide).

    0 讨论(0)
  • 2021-01-01 11:16

    It would be good if the Visual Studio F# Interactive Options menu allowed for the stipulation of a startup script that the invocation could pass to FSI via the "--use:" directive. Such a script could then be passed solution metadata that allows for the environments to be more integrated such as loading latest project outputs.

    0 讨论(0)
  • 2021-01-01 11:18

    Now in Visual Studio 2013 you can add a reference to the F# interactive window by right clicking on the referenced dll and clicking "Send to F# interactive".

    0 讨论(0)
  • 2021-01-01 11:20

    I would think it should be straightforward to reference the current project, obtain the list of references it contains, and then optionally generate a list of #r (and possibly #i) statements for the interactive session being created, referencing the dll of the project itself as well.

    For example: "fsi /i:pathOfLib1 /r:lib1 /i:pathOfLib2 /r:lib2 ...."

    PS: base on the MSDN article it doesn't appear that library names can include their path prefixes hence the separate into /i and /i : http://msdn.microsoft.com/en-us/library/dd233172%28v=vs.100%29.aspx

    0 讨论(0)
提交回复
热议问题