Использование f# на Mac с dotnet cli

Я пытался подписаться на https://github.com/enricosada/fsharp-dotnet-cli-samples/wiki/Getting-Started#hello-world, чтобы начать работу с f# и ядром dotnet на моем Mac.

% mkdir helloworld
% cd helloworld
% dotnet new --lang "f#"
Created new F# project in /Users/User/dotnet/helloworld.
% ls
Program.fs   project.json

Здесь я уже могу сказать, что нет NuGet.Config, как указано в руководстве, которому я следовал. Затем

% dotnet restore
log  : Restoring packages for /Users/User/dotnet/helloworld/project.json...
log  : Restoring packages for tool 'dotnet-compile-fsc' in /Users/User/dotnet/helloworld/project.json...
log  : Writing lock file to disk. Path: /Users/User/dotnet/helloworld/project.lock.json
log  : /Users/User/dotnet/helloworld/project.json
log  : Restore completed in 2148ms.
% dotnet run
Project helloworld (.NETCoreApp,Version=v1.1) will be compiled because expected outputs are missing
Compiling helloworld for .NETCoreApp,Version=v1.1
The specified framework 'Microsoft.NETCore.App', version '1.0.0' was not found.
  - Check application dependencies and target a framework version installed at:
      /usr/local/share/dotnet/shared/Microsoft.NETCore.App
  - The following versions are installed:
      1.1.0
  - Alternatively, install the framework version '1.0.0'.
/usr/local/share/dotnet/dotnet compile-fsc @/Users/User/dotnet/helloworld/obj/Debug/netcoreapp1.1/dotnet-compile.rsp returned Exit Code 131

Compilation failed.
    0 Warning(s)
    0 Error(s)

Time elapsed 00:00:00.4439997

Информация о дотнете говорит

% dotnet --info
.NET Command Line Tools (1.0.0-preview2-1-003177)

Product Information:
 Version:            1.0.0-preview2-1-003177
 Commit SHA-1 hash:  a2df9c2576

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  10.12
 OS Platform: Darwin
 RID:         osx.10.12-x64

person wirrbel    schedule 25.11.2016    source источник
comment
В этих инструкциях упоминается (вверху) установка .Net Core Preview 1. Но github.com/dotnet/cli /releases перечисляет Preview 3, чья объявление о выпуске упоминает, что они отходят от формата project.json и возвращаются к формату .csproj, хотя это формат .csproj, который, по-видимому, значительно упрощен по сравнению с тем, как он выглядел раньше. Возможно, вам просто нужно обновить инструменты .NET CLI до версии 1.0 preview 3 и повторить попытку?   -  person rmunn    schedule 25.11.2016


Ответы (2)


У меня была аналогичная проблема раньше при создании проекта F # с использованием dotnet new --lang "f#"

Проблема заключается в этой зависимости, которую вы должны увидеть в своем project.json файле: dotnet-compile- фск.

"tools": {
    "dotnet-compile-fsc": "1.0.0-preview2.1-*"
},

На момент написания это поддерживает только среду выполнения .Net Core 1.0.*, а не среду выполнения .Net Core 1.1.*, которую вы установили.

Чтобы исправить это, вы можете установить среду выполнения .Net Core 1.0.* отсюда и снова запустите dotnet run. Среды выполнения 1.1.* и 1.0.* могут быть установлены локально без проблем.

Для справки: ошибка, о которой сообщается на GitHub. Исправление есть, но его пока нет в NuGet.

person Luke Merrett    schedule 09.01.2017

Текущая версия dotnet-compile-fsc еще не работает с .NET Core 1.1 (текущая, предварительная версия SDK2.1), только с .NET Core 1.0 (LTS, предварительная версия SDK2).

Вы можете обойти это, выполнив dotnet restore, как показано ниже, используя канал разработки, поскольку новый пакет еще не находится на nuget.org.

dotnet restore -f https://www.myget.org/F/netcorecli-fsc-preview2-1/api/v3/index.json

см. https://github.com/dotnet/netcorecli-fsc/wiki/.NET-Core-SDK-preview2.1 для получения дополнительной информации/обходного решения.

person Enrico Sada    schedule 16.01.2017