2016-10-31 4 views
1

VSCode 및 Paket을 사용하지만 백엔드의 모든 항목이 서로 어떻게 연결되는지 이해하지 못합니다.VSCode, Paket 및 컴파일러 오류

오늘 아침에 .FS 파일에서 해당 라이브러리를 열려고 시도 할 때 내 paket.dependencies 파일이 올바른지 문제가 발생합니다. 컴파일러 오류가 발생합니다.

폴더/디렉토리 구조의 스크린 샷과 Paket: Install의 Paket 출력을 포함 시켰습니다.

enter image description here

RawData.fs 파일에서 컴파일러 오류

The namesapce `TypeProviders` is not defined 

원인을 무엇을 어떤 아이디어가? FSharp.Configuration에 대한 오류는 유사합니다. 나는 그들이 왜 사용할 수 없는지 모르겠다. 그들은 모두 설치되어 있고 Paket 의존성 파일에 있고 설치되어 있습니다.

+0

나는 많은 (또는 전혀 사실),하지만 난 거라 생각 PROJ-파일 VSCode을 사용하지 않은 그 PROJ 파일에 대한 참조를 추가하는 마법 (또는 .json 파일의 경우 .NET의 핵심 또는 무언가) 행해지 지 않는다. 그래, 나는이 힌트가 최선의 방향으로 포인터를 주며 즉시 도움이되지 않는다는 것을 알았다. 그래서 : 죄송합니다 ;-)하지만 https://docs.microsoft.com/en-us/를보십시오. dotnet/articles/fsharp/tutorials/getting-started/getting-started-vscode, https://fsprojects.github.io/Paket/ 및 https://github.com/fsprojects/ProjectScaffold를 참조하십시오. 이것들은 당신을 어느 정도 더 도울 수 있습니다. –

+0

좋은 포인터. 나는 하나의 구성 요소 (Ionide-fsharp) 중 하나의 최근 업그레이드가이 동작과 관련이 있다고 의심하기 시작했습니다. – Steven

답변

1

dll도 패키지 디렉토리에도 있는지 확인할 수 있습니까? 그런 다음 최소한 참조하는 라이브러리에 대해 .fsproj 파일에서 다음을 가져야합니다.

<Reference Include="FSharp.Configuration"> 
     <HintPath>..\packages\FSharp.Configuration.0.6.2\lib\net40\FSharp.Configuration.dll</HintPath> 
     <Private>True</Private> 
    </Reference> 
    <Reference Include="FSharp.Core"> 
     <HintPath>..\packages\FSharp.Core.3.1.2.5\lib\net40\FSharp.Core.dll</HintPath> 
     <Private>True</Private> 
    </Reference> 
    <Reference Include="FSharp.Data"> 
     <HintPath>..\packages\FSharp.Data\lib\net40\FSharp.Data.dll</HintPath> 
     <Private>True</Private> 
    </Reference> 
    <Reference Include="FSharp.Data.TypeProviders"> 
     <HintPath>..\packages\FSharp.Data.TypeProviders.5.0.0.2\lib\net40\FSharp.Data.TypeProviders.dll</HintPath> 
     <Private>True</Private> 
    </Reference> 
+0

'.dll' 파일은 모두 패키지 디렉토리에 있지만'.fsproj' 파일에는 없습니다. 이상하게 보입니다. 나는 그것이'Ionide-fsharp v2.8.9' 로의 업그레이드와 관련이 있는지 궁금합니다. 이 동작을 처음으로 보았습니다 (즉, 패키지를 다운로드했지만'.fsproj' 파일은 업데이트하지 않았습니다). – Steven

+0

Ionide v2.8.9로 새 프로젝트를 만들고 동일한 명령을 사용하여 Nuget에서 새 라이브러리를 설치하면'.fsproj' 파일이 올바르게 업데이트됩니다. 그러나 기존 프로젝트 *에서 * v2.8.9로 업그레이드 한 후에는 작동하지 않습니다. Iondide의 github에서 문제를 여는 것 이외에 무엇을해야할지 모르겠습니다. – Steven

+0

@steven 그것이 재현 될 수 있다면 좋은 생각입니다. 그렇지 않으면 명령 줄에서 paket이나 forge를 사용해보십시오. 아니면 fsproj를 편집하면됩니다. – s952163