У меня есть хорошо зарекомендовавший себя проект, который включает в себя три роли работников. Этот проект всегда использовал F #, а не в самих рабочих ролях, а в функциях, которые они называют. Недавно я добавил в проект еще одну рабочую роль, но архитектура (рабочие роли C#, вызывающие код F #) остается неизменной. Так как эти изменения я получаю эти сообщения после развертывания:Ошибки FSharp.Core при запуске роли рабочего Azure
Could not load file or assembly 'FSharp.Core, Version=4.3.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference.
Это происходит при разрешении зависимостей Autofac:
Autofac.Core.DependencyResolutionException", "exceptionMessage": "An exception was thrown while invoking the constructor 'Void .ctor(Amazon.DynamoDBv2.AmazonDynamoDBConfig
Я знаю, что это хорошо известная проблема, и решение, как правило, добавить некоторые обязательные переадресации. Я добавил редирект таким образом:
<dependentAssembly>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.3.1.0" newVersion="4.3.1.0" />
... для каждого проекта в решении, которое имеет app.config, который включает в себя все роли работника. Я также подтвердил, что каждая ссылка на FSharp.core использует версию 4.3.1.0 и имеет локальный набор для копирования в true.
Я также попытался добавить FSharp.core к проектам C# в решении через пакет phharp.Core nuget.
Спасибо - несколько блестящих советов. Я опубликую результаты, как только я их последую. – Kit
Упакованный облачный сервис, переименованный в файл cspkg для zip и распаковки. Переименовал внутренние файлы cssx в ZIP и распакован. Обнаружил, что там были и FSharp.core.dll 4.3.1.0 и 4.4. Понял, что это было сделано путем установки пакета FSharp.Core Nuget. Отменив это изменение, повторив вышеизложенное, выяснилось, что теперь все файлы FSharp.core.dll равны 4.3.1.0. Теперь передислоцировать эту версию, чтобы доказать эту проблему, все еще существует (я думаю, что это будет так, как это было до того, как я обзавелся FSharp.core). – Kit
Да, снова не удалось - все еще «Не удалось загрузить файл или сборку» FSharp.Core, Version = 4.3.1.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a »или одна из его зависимостей. Определение манифеста расположенной сборки не соответствует ссылке на сборку ». Я собираюсь сдуть всю ветку сборки и воссоздать ее, если что-то не обновляется во время сборки (MyGet). – Kit