Я пытаюсь подписаться на следующую запись в блоге о как настроить простую функцию f # azure. Я использую функции Azure версии 2.
Все создается и может быть опубликовано, но при запуске кода у меня возникает проблема:
[29/03/2018 10:27:00] Executing 'Functions.lofunc' (Reason='Timer fired at 2018-03-29T12:27:00.0084511+02:00', Id=fc30e93d-cae7-4f72-b9f9-adbc2f50794c)
[29/03/2018 10:27:00] Exception during runtime resolution of assembly 'FSharp.Core, Version=4.4.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a': 'System.InvalidCastException: [A]System.AppDomain cannot be cast to [B]System.AppDomain. Type A originates from 'System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' in the context 'Default' at location 'C:\Users\emilh\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\System.Private.CoreLib.dll'. Type B originates from 'System.Runtime.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' in the context 'Default' at location 'C:\Users\emilh\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\System.Runtime.Extensions.dll'.
[29/03/2018 10:27:00] at Microsoft.Azure.WebJobs.Script.Description.FunctionAssemblyLoader.ResolveAssembly(Object sender, ResolveEventArgs args) in C:\azure-webjobs-sdk-script\src\WebJobs.Script\Description\DotNet\FunctionAssemblyLoader.cs:line 69'
[29/03/2018 10:27:00] Unable to find assembly 'FSharp.Core, Version=4.4.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Are you missing a private assembly file?
[29/03/2018 10:27:00] A ScriptHost error has occurred
[29/03/2018 10:27:00] Exception while executing function: Functions.lofunc. System.Private.CoreLib: Exception has been thrown by the target of an invocation. lofunc: Could not load file or assembly 'FSharp.Core, Version=4.4.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Could not find or load a specific file. (Exception from HRESULT: 0x80131621). System.Private.CoreLib: Could not load file or assembly 'FSharp.Core, Version=4.4.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
Я нашел этот https://github.com/Microsoft/visualfsharp/issues/4263, в котором упоминается, что есть некоторая связанная версия FSharp.Core в функциях azure, версия, которая конфликтует с той, которую я использую для ее компиляции. Есть ли обходной путь?
@Szer Поскольку я новичок в dotnet
, где я могу указать версию, которую следует использовать?
Если вы используете диспетчер пакетов Nuget, сделайте следующее: Uninstall-Package FSharp.Core -Force
, а затем Install-Package FSharp.Core -Version 4.2.2
. Для пакета добавьте это в project.references: nuget FSharp.Core 4.2.2
Или просто в файл * .fsproj: <PackageReference Include = "FSharp.Core" Version = "4.2.2" />
Я просмотрел свои рабочие функции Azure и мог гарантировать, что даже 4.2.3 будет работать нормально. Другие ограничения, которые вам в конечном итоге понадобятся: Microsoft.NET.Sdk.Functions 1.0.7
и Microsoft.AspNetCore.Mvc.Abstractions 2.0.1
.
Понизьте версию FSharp.Core до 4.2.2. Я использую AzureFunction V2 и постоянно имею дело с этой ерундой.