我有一個完善的項目,其中包含三個工作角色。這個項目一直使用F#,而不是在工作者角色本身,但在他們調用的函數中。我最近在項目中添加了另一個工作角色,但架構(調用F#代碼的C#工作角色)保持不變。由於這些變化部署後我已經得到這些信息:Azure工作者角色啓動期間的FSharp.Core版本錯誤
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 nuget包向解決方案中的C#項目添加FSharp.core。
謝謝 - 那裏有幾個精彩的提示。一旦我跟蹤他們,我會盡快公佈結果。 – Kit
打包雲服務,將cspkg文件重命名爲zip並解壓縮。將內部cssx文件重命名爲zip並解壓縮。 發現那裏同時存在FSharp.core.dll 4.3.1.0和4.4。意識到這是通過安裝FSharp.Core Nuget包完成的。恢復了上述變化,發現現在所有的FSharp.core.dlls都是4.3.1.0。 現在重新部署該版本來證明這個問題仍然存在(我認爲這將是因爲它是我Nugetted FSharp.core之前發生的事情)。 – Kit
是的,再次失敗 - 仍然是「無法加載文件或程序集'FSharp.Core,Version = 4.3.1.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或它的某個依賴項,找到的程序集清單定義與程序集引用不匹配」。如果在構建過程中沒有更新(MyGet),我將吹掉整個分支構建並重新創建它。 – Kit