F#, VSCode и OSX: пространство имен или модуль «Экспекто» не определены.

Я пытаюсь начать работу с F Sharp.

У меня установлен моно через brew и dotnetcore через d/l.

У меня есть VS Code и установлен плагин ionide.

Я сделал следующие шаги:

  • проект > новый > ожидание
  • установка пакета
  • поддельная сборка
  • ожидание запуска

Установка проходит без ошибок. Каталог сборки пуст после поддельной задачи сборки. Expecto run не делает... ничего.

Когда я открываю сгенерированный файл Main.fs, редактор говорит мне:

The namespace or module 'Expecto' is not defined

Есть ли что-то, что мне не хватает?


person Toby Hede    schedule 23.03.2018    source источник
comment
Я полагаю, что в шаблоне Ionide для проекта › new › expecto может отсутствовать один или два файла; Давно я его не смотрел, поэтому не могу точно сказать, чего не хватает. У меня был хороший успех с github.com/TheAngryByrd/MiniScaffold, который позволяет создавать новые мини- scaffold и иметь рабочую структуру проекта, включающую тесты Expecto. (ПРИМЕЧАНИЕ. Если у вас нет .Net Core 1.1, отредактируйте два файла .fsproj, найденные в этом шаблоне, и удалите строки netstandard1.6 и netcoreapp1.1 из TargetFrameworks).   -  person rmunn    schedule 23.03.2018
comment
Также обратите внимание, что в настоящее время существует известная проблема с github.com/TheAngryByrd/MiniScaffold. у вас есть репозиторий Git, или если в вашем репозитории Git нет удаленного origin, части сборки завершатся ошибкой. После запуска dotnet new mini-scaffold я всегда захожу в проект и выполняю следующие четыре команды: git init ., git add ., git commit -m "Initial commit from scaffold", а затем git remote add origin [email protected]:rmunn/non-existent-url (или реальный URL-адрес GitHub, если он у меня есть). Тогда это работает просто отлично.   -  person rmunn    schedule 23.03.2018
comment
Обновление: github.com/TheAngryByrd/MiniScaffold/pull/67, похоже, исправил проблема с необходимостью удаленного origin, поэтому единственное, что осталось, это то, что сценарий сборки скаффолда ожидает, что будет репозиторий git (поскольку он помещает текущий хэш Git в AssemblyInfo.fs). Так что просто запустите git init . и сделайте один коммит (коммит, скажем, файлов, созданных эшафотом), и все будет в порядке.   -  person rmunn    schedule 23.03.2018


Ответы (1)


Для справки в будущем исправление, если вы остаетесь с настройками по умолчанию, созданными Ionide, заключается в том, чтобы убедиться, что ваша целевая платформа настроена на .net core, а не на .net framework.

<TargetFramework>netcoreapp2.0</TargetFramework>

person Toby Hede    schedule 27.03.2018