Ошибки компилятора при потреблении пакетов NuGet из библиотеки F #, ориентированной на .NET Core

У меня возникают проблемы с открытием пространств имен в некоторых пакетах NuGet (например, Newtonsoft.Json и Microsoft.EntityFrameworkCore.SqlServer) при настройке .NET Core из проекта библиотеки F #.

Ниже приведены шаги, которые приводят к моей проблеме:

  • Установлен "Обновление Visual Studio 2015 3" и ".NET Core 1.0.1 - VS 2015 Tooling Preview 2" из https://www.microsoft.com/net/core#windows

  • Создано пустое решение со следующим содержимым:

    Microsoft Visual Studio Solution File, Format Version 12.00  
    # Visual Studio 14
    VisualStudioVersion = 14.0.25420.1  
    MinimumVisualStudioVersion = 10.0.40219.1  
    Global  
        GlobalSection(SolutionProperties) = preSolution  
            HideSolutionNode = FALSE  
        EndGlobalSection  
    EndGlobal
    
  • Создан пустой каталог проекта в каталоге решений

  • В пустом каталоге проекта выполняется команда:

    dotnet new -t lib --lang f#
    

    который создал файл Library.fs:

    namespace Library
    
    module Say =
        let hello name =
            printfn "Hello %s" name
    

    и файл project.json:

    {
      "version": "1.0.0-*",
      "buildOptions": {
        "debugType": "portable",
        "compilerName": "fsc",
        "compile": {
          "includeFiles": [
            "Library.fs"
          ]
        }
      },
      "tools": {
        "dotnet-compile-fsc":"1.0.0-preview2-*"
      },
      "frameworks": {
        "netstandard1.6": {
          "dependencies": {
            "NETStandard.Library":"1.6.0",
            "Microsoft.FSharp.Core.netcore": "1.0.0-alpha-160629"
          }
        }
      }
    }
    
  • Добавил этот существующий проект в мое решение, и восстановление пакета работало нормально

  • Пользовательский интерфейс NuGet Package Manager не смог открыть, поскольку

    "dotnet-compile-fsc":"1.0.0-preview2-*"
    

    из файла project.json был "недействительной версией строки"

  • Выполните команду

    dotnet -version
    

    и заменил "неверную версию" на фактическую версию "1.0.0-preview2-003131"

  • Пользовательский интерфейс диспетчера пакетов NuGet затем правильно открыл и отобразил следующие установленные пакеты:

    • dotnet-compile-fsc v1.0.0-preview2-003131
    • Microsoft.FSharp.Core.netcore v1.0.0-alpha-160629
    • NETStandard.Library v1.6.0
  • Установлен пакет Newtonsoft.Json v9.0.1, который добавил в корень файла project.json следующее:

    "dependencies": {
        "Newtonsoft.Json": "9.0.1"
    }
    
  • В файл Library.fs добавлены следующие строки:

    open System
    open Newtonsoft.Json
    

    но компилятор дает мне ошибку "пространство имен или модуль" Newtonsoft "не определено"

  • Создал новый проект библиотеки Visual С#.NET Core Class в том же решении, используя шаблон в Visual Studio 2015, который создал файл Class1.cs:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    
    namespace example2
    {
        public class Class1
        {
            public Class1()
            {
            }
        }
    }
    

    и файл project.json:

    {
      "version": "1.0.0-*",
    
      "dependencies": {
        "NETStandard.Library": "1.6.0"
      },
    
      "frameworks": {
        "netstandard1.6": {
          "imports": "dnxcore50"
        }
      }
    }
    
  • Установлен пакет Newtonsoft.Json v9.0.1 в проект С#, который обновил зависимости в файле project.json:

    "dependencies": {
        "NETStandard.Library": "1.6.0",
        "Newtonsoft.Json": "9.0.1"
    }
    
  • В файл Class1.cs добавлена ​​следующая строка:

    using Newtonsoft.Json;
    

    и не было проблем с компилятором


У меня такая же проблема с пакетом Microsoft.EntityFrameworkCore.SqlServer NuGet.

Может кто-нибудь объяснить, что я делаю неправильно в проекте F #, который мешает мне использовать эти пакеты?