2013-05-02 20 views
10

다소 초보자 용 F #입니다. 대화 형 창에서 먼저 스크립트 (fsx) 파일에 입력하여 XmlTypeProvider 코드 일부를 테스트하려고합니다. 스크립트 파일은 다음스크립트가 FSharp.Data를 인식하지 못합니다.

open FSharp.Data // gives "The namespace or module 'FSharp' is not defined" 

모두가 참조 추가되었습니다 인식하고 파일이 XmlTypeProvider 참조를 찾는 문제가없는 것 같습니다하지만 어떤 이유로, 같은 프로젝트에서 스크립트하지 않는 .fs하지 않습니다 . .fs 파일에서 작업 할 코드도 있습니다.

FSharp.Data에 nuget을 추가했는데 모든 것이 올바르게 추가 된 것처럼 보입니다. 내가 여기서 무엇을 놓치고 있니?

+1

http://stackoverflow.com/questions/3102472/fc-fsx-script-files-and-project-references을 포함 프로젝트 참조를 사용하지 않습니다 (fsi도 마찬가지 임). 파일을 수동으로 참조해야합니다. 해당 게시물을 참조하십시오. – mydogisbox

+1

여기에 더 자세한 기사가 있습니다. http://blogs.msdn.com/b/chrsmith/archive/2008/09/12/scripting-in-f.aspx – mydogisbox

+0

Chris에게 감사드립니다. 나는 당신 writeups의 몇몇을 읽었다, 그러나 저것 아닙니다! – user2344035

답변

5

덧붙여서, 나는 지난 주에이 오류를 디버깅 중이었습니다. 기본적으로 세 가지 이유가 있습니다.

  • 파일을 찾을 수 없습니다. 가장 확실한 것은 F #이 실제로 dll 파일을 찾을 수 없다는 것입니다. 참조가 올바른지 확인하십시오 (프로젝트 속성의 참조를 확인하십시오) 또는 #r이 올바른 파일을 가리키는 지 확인하십시오 (F # 스크립트 파일을 사용하는 경우)

  • 유형 공급자가 신뢰할 수없는 것입니다. 형식 공급자가 Visual Studio에 의해 차단되었습니다. 처음으로 공급자를로드 할 때 "사용 안 함"을 클릭하면이 문제가 발생할 수 있습니다. 이 문제를 해결하려면 "도구"- "옵션"- "F # 도구"- "유형 공급자"로 이동하여 유형 공급자를 활성화하십시오 ("신뢰"확인).

  • DLL이 OS에 의해 차단되었습니다. 마지막으로 dll이 신뢰할 수없는 출처에서 왔을 경우 Windows에서이를 차단할 수 있습니다 (특히 zip 파일을 다운로드하고 Windows를 사용하여 파일을 추출한 경우에 발생합니다). 파일을 차단 해제하려면 파일 속성으로 이동하여 '차단 해제'를 클릭하십시오. good description here.이 있습니다.

9

스크립트의 참조를 FSharp.Data.dll이 포함 된 nuget 패키지 폴더에 추가하십시오. 그 폴더는 또한 FSX 파일 디자이너 DLL (FSharp.Data.DesignTime.dll)

#r @"<your nuget packages folder>\FSharp.Data.2.1.0\lib\net40\FSharp.Data.dll" 
+0

저를 버린 것은 VS가 저 입력을 시작할 때 (즉 #r "") 나에게 구불 구불 한 선을주었습니다. 실제로 디자인 타임에 문자열을 파싱합니다. 그래서 마침내 DLL을 발견했을 때, 구불 구 불한 선은 사라졌습니다. – mac10688

관련 문제