how to add third party dll reference to F# project

2019-04-04 17:35发布

问题:

I'm adding a third party dll reference to my F# project. I added the dll in references and when I use this i.e highlight the code and do Alt+Ent, I get the error "The namespace or module 'AZROLESLib' not defined." Am I missing some thing.

回答1:

In short, you have to use #r "/path/to/AZROLESLib.dll" in order that F# Interactive recognizes and loads the dll file.

Adding a dll reference helps Visual Studio to find correct libraries when compiling the project, but it has nothing to do with F# Interactive. Therefore, you have to use #r directive to point to AZROLESLib.dll. If VS has some troubles to highlight the code, you may have to open the exact module in your dll file:

open AZROLESLibModule

If the code is in a *.fs file, you may want to distinguish between using fsi and using fsc:

#if INTERACTIVE
#r "/path/to/AZROLESLib.dll"
#endif


回答2:

for some things you can call them directly by name with no path

#r "EnvDte"

works for vs2013 here for instance



回答3:

In my case my F# project was referencing a C# DLL but I had the same issue, "The namespace or module 'MyModule' not defined", when doing "open MyModule".

The solution was to edit the settings to use the same framework (one was using 4.5 and the other 4.0).