F#声明的命名空间在c#项目中不可用或通过对象浏览器可见

Ale*_*ois 8 c# resharper f# interop

F#声明的命名空间在c#项目中不可用或通过对象浏览器可见.

我已经构建了一个普通的F#库项目,但即使在我构建项目并将其引用到我的C#项目之后,我也无法访问所需的命名空间.

我也无法在对象浏览器中看到它,我收到一个错误,告诉我它还没有构建.我在9月发布的版本上运行有人可以指出我的错误吗?

F#版本1.9.6.0

(6)编辑:直接引用dll修复了我的问题,引用项目允许我编译,但是intellisence不起作用.直接引用dll时,intellisence可以完美地工作.


这是.fs文件中的代码

#light

namespace Soilsiu.Core 

module public Process =
    open System.Xml.Linq

    let private xname (tag:string) = XName.Get(tag)
    let private tagUrl (tag:XElement) = let attribute = tag.Attribute(xname "href")
                                        attribute.Value
    let Bookmarks(xmlFile:string) = 
        let xml = XDocument.Load(xmlFile)
        xml.Elements <| xname "A" |> Seq.map(tagUrl)

    let PrintBookmarks (xmlFile:string) =     
        let list = Bookmarks(xmlFile)
        list |> Seq.iter(fun u -> printfn "%s" u)
Run Code Online (Sandbox Code Playgroud)

(5)编辑:ReSharper 4.0可能成为问题吗?

(4)编辑:当我说对象浏览器无法读取生成的程序集时,我的意思是当我尝试在对象浏览器中打开程序集时,我得到一个错误,告诉我项目尚未构建.我再次使用反射器读取组件.

(3)编辑:反射器可以反汇编dll但对象浏览器无法读取它.

(2)编辑:我已将我的F#版本升级到1.9.6.2,但结果仍然相同

(1)编辑:我能够将dll反汇编为C#我得到:(这里似乎一切都很好)

namespace Soilsiu.Core
{
    [CompilationMapping(7)]
    public static class Crawler

    [CompilationMapping(7)]
    public static class Process
}
Run Code Online (Sandbox Code Playgroud)
[CompilationMapping(7)]
public static class Process
{
    // Methods
    static Process();
    public static IEnumerable<string> Bookmarks(string xmlFile);
    public static void PrintBookmarks(string xmlFile);
    internal static string tagUrl(XElement tag);
    internal static XName xname(string tag);

    // Nested Types
    [Serializable]
    internal class clo@13 : FastFunc<XElement, string>
    {
        // Methods
        public clo@13();
        public override string Invoke(XElement tag@9);
    }

    [Serializable]
    internal class clo@17 : FastFunc<string, Unit>
    {
        // Methods
        public clo@17();
        public override Unit Invoke(string u);
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 4

如果直接引用生成的 DLL(即不是通过项目引用,而是通过文件引用)会怎么样?