我有一个完善的项目,其中包含三个工作角色。这个项目一直使用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