F#선언 네임스페이스에서 사용할 수 없습 c#프로젝트 또는 눈에 보이는 객체를 통해 브라우저

StackOverflow https://stackoverflow.com/questions/208008

  •  03-07-2019
  •  | 
  •  

문제

F#선언 네임스페이스에서 사용할 수 없습 c#프로젝트 또는 눈에 보이는 객체를 통해 브라우저입니다.

내가 내장되어 있는 정상 F#라이브러리 프로젝트이지만,후에도 나를 구축 프로젝트를 참조하여 내 C#프로젝트에 액세스할 수 없습니다.원하는 네임스페이스가 있습니다.

나 또한 그것을 볼 수 없습 개체 브라우저에서 나는 오류를 말하고 나가지 않습니다.나는에서 실행 되는 월 출시할 수 있는 사람을 지적한 나 오류가?

F#버전 1.9.6.0

(6)편집:을 참조하 dll 직접는 내 문제를 해결을 참조,프로젝트할 수 있게 컴파일하지만 intellisence 작동하지 않습니다.때때 직접 참조 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)

(5)편집:수있---끝---이력서 내 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
}

[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);
    }
}
도움이 되었습니까?

해결책

생성 된 DLL을 직접 참조하면 (예 : 프로젝트 참조가 아니라 파일 참조를 통해)?

다른 팁

어쩌면 IntelliSense 은 엉망?무엇을 컴파일러에 오류가 당신을 얻을 하려고 하면 그것을 사용하는 C#?을 때 당신이 말하는"개체 브라우저를 읽을 수 없다"무슨 뜻입니까?

For what it's worth,이것을 추가하 F#라이브러리 프로젝트를 참조하는 그것의 프로젝트(project)에서는 C#콘솔 응용 프로그램,그리고 사용할 수 있었습니다.IntelliSense 에서 작동하지 않았다 먼저 하지만입니다.(을 다시 작성합니다.)

만약 당신이 할 수 있는 단단한 생식,나는 그것을 이메일 F#버그 별칭(fsbugs).

나는 같은 것을 시도했다. 마치 Visual Studio와 Resharper 4.0이 어떤 이유로 F#를 이해하지 못하는 것처럼 보입니다. 붉은 텍스트의 바다와 지능이 부족한 것을 무시하면 정상적으로 컴파일 할 것입니다.

노력하다

  1. C# 프로젝트가 전체 .NET (클라이언트 프로파일이 아님)가 타겟팅되어 있는지 확인하십시오.

  2. F# Project에서 사용하는 C# 프로젝트에 어셈블리에 대한 참조를 추가하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top