Подтвердить что ты не робот

Почему мой проект F # создается локально, но не работает на Travis?

Сборка для моего проекта сбой на Travis со следующей ошибкой:

FSC: ошибка FS0193: модуль/пространство имен 'System.Net' из модуля компиляции 'System' не содержит пространства имен, модуля или типа 'WebClient'

Основной проект не имеет никаких зависимостей, и тестовый проект не зависит от System.Net или WebClient, поэтому я не уверен, как это применимо здесь.

Все работает нормально локально, поэтому я предполагаю несоответствие версии где-то, но не смог определить, что.

Результат моей локальной сборки можно найти в этот текстовый файл.


Обновление

Следуя проблеме GitHub, созданной @7sharp9, было обнаружено, что это является анонимной ошибкой .

Предлагаемый обходной путь должен был ссылаться на FSharp.Core из пакета NuGet, который работал у меня.

Вы можете пожелать использовать только пакет NuGet, когда канонический путь недоступен, как и я.

4b9b3361

Ответ 1

Версия travis строится с FSharp.Core от GAC:

-r:/usr/lib/mono/gac/FSharp.Core/4.3.1.0__b03f5f7f11d50a3a/FSharp.Core.dll

В то время как ваша локальная сборка использует FSharp.Core по адресу:

-r: "/Library/Frameworks/Mono.framework/Версии/4.0.2/lib/mono/xbuild/../Ссылочные сборки /Microsoft/FSharp/.NETCore/3.259.3.1/FSharp.Core.dll"

Ошибка, которую вы получаете:

FSC: ошибка FS0193: модуль/пространство имен 'System.Net' из модуля компиляции 'System' не содержит пространства имен, модуля или типа 'WebClient'

Указано несоответствие FSharp.Core, где его попытка разрешить ссылки System.Net из Fsharp.Core, расположенного в GAC, другими ссылками в вашем проекте являются все PCL 259, которые не будут удовлетворять этой ссылке.

Относительно того, почему вы могли бы построить трафик с помощью диагностического коммутатора?

Итак, следуйте дальше, теперь, когда есть связанная диагностическая сборка, проблема здесь:

HintPath/usr/lib/mono/xbuild/../Reference Assemblies/Microsoft/FSharp/.NETCore/3.259.3.1/FSharp.Core.dll не существует.             Ссылка FSharp.Core разрешена /usr/lib/mono/gac/FSharp.Core/4.4.0.0__b03f5f7f11d50a3a/FSharp.Core.dll. CopyLocal = False             Ссылка, найденная на пути поиска {GAC}

У экземпляра travis нет:

/usr/lib/mono/xbuild/../Ссылочные сборки /Microsoft/FSharp/.NETCore/3.259.3.1/FSharp.Core.dll

Поэтому он возвращается к gac.

Недавно появилась проблема, когда FSharp.Core не был установлен в нужное место, возможно, это проявление этого.

Что бы я сделал, попробуйте другую версию моно, как описано здесь: http://docs.travis-ci.com/user/languages/csharp/ Возможно, попробуйте более старую, например, 3.12 или альфа или бета, чтобы попробовать и подтвердить что это действительно проблема.