2016-10-31 6 views
1

Я использую VSCode и Paket, но не понимаю, как все на задней панели соединяется друг с другом.Ошибки VSCode, Paket и компилятора

Сегодня утром у меня возникает проблема, когда файл paket.dependencies верен, но когда я пытаюсь открыть эти библиотеки в файле .FS, я получаю ошибки компилятора.

Я включил экранный снимок структуры папки/каталога, а также выход Paket для Paket: Install.

enter image description here

Любые идеи, что вызывает ошибку компилятора

The namesapce `TypeProviders` is not defined 

в файле RawData.fs? Ошибка для FSharp.Configuration аналогична. Я не знаю, почему они недоступны; они оба установлены и находятся в файле зависимостей Paket и установлены.

+0

Я не использовал VSCode с Рго-файлов много (или вообще на самом деле), но я бы предположил, что магия для добавления ссылок в Рго-файл (или .json файл, если .net ядро или что-то) не делается. Да, я вижу, что этот намек в лучшем случае дает вам указатель в направлении и не сразу очень полезно ... Итак: Извините ;-) Но попробуйте посмотреть https://docs.microsoft.com/en-us/ dotnet/articles/fsharp/tutorials/get-started/get-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. Я не уверен, что делать, кроме как открыть проблему в github Iondide. – Steven

+0

@steven, если его можно воспроизвести, это хорошая идея. в противном случае вы можете попробовать использовать paket или forge из командной строки. или просто отредактируйте fsproj, если он один. – s952163

 Смежные вопросы

  • Нет связанных вопросов^_^