Я развертываю веб-сайт C# в Azure из репозитория GitHub. Этот веб-сайт ссылается на пару библиотек F#, и они прекрасно компилируются на моем компьютере, но в Azure сборка завершается с ошибкой компиляции.
Вот фрагмент журнала сборки:
FS0001: A generic construct requires that the type 'Company' have a public default constructor [C:\DWASFiles\Sites\eureka-servicestack-poc\VirtualDirectory0\site\repository\Eureka.ServiceStack.FSharp.Poc\Services\Services.fsproj]
C:\DWASFiles\Sites\eureka-servicestack-poc\VirtualDirectory0\site\repository\Eureka.ServiceStack.FSharp.Poc\Services\CompaniesService.fs(28,17): error FS0039: The field, constructor or member 'PopulateWith' is not defined [C:\DWASFiles\Sites\eureka-servicestack-poc\VirtualDirectory0\site\repository\Eureka.ServiceStack.FSharp.Poc\Services\Services.fsproj]
C:\DWASFiles\Sites\eureka-servicestack-poc\VirtualDirectory0\site\repository\Eureka.ServiceStack.FSharp.Poc\Services\AppHost.fs(17,55): error FS0072: Lookup on object of indeterminate type based on information prior to this program point. A type annotation may be needed prior to this program point to constrain the type of the object. This may allow the lookup to be resolved. [C:\DWASFiles\Sites\eureka-servicestack-poc\VirtualDirectory0\site\repository\Eureka.ServiceStack.FSharp.Poc\Services\Services.fsproj]
An error has occurred during web site deployment.
Первая ошибка должна была быть исправлена после того, как я поместил атрибут CLIMutable в оскорбительный тип записи, а вторая ошибка должна была быть исправлена после включения правильного пространства имен. Я не знаю, в чем именно заключается третья ошибка, тем более, что ни одна из них не возникает локально.
Чтобы убедиться, что у меня одна и та же версия F# в обоих местах, я включил dll FSharp.Core в решение и ссылаюсь на локальную версию. Это не помогло, но убрало предупреждение о том, что не может найти версию 4.3.1 файла.
Возможно ли, что я использую другую версию компилятора F# и как это проверить? До сих пор он работал нормально, что заставляет меня подозревать небольшую разницу в версиях чего-либо. К сожалению, довольно сложно понять, что на самом деле происходит в среде сборки. Это бесплатный веб-сайт Azure, и не похоже, что вы получите к нему прямой доступ.
Я, вероятно, мог бы работать над отдельными проблемами на данный момент, но, похоже, здесь работает более глубокая проблема.