我在VS 2012中有一个F#项目,其中F#core 4.3.0和.net 4.5.0通过nugget包依赖于FSharp.Data。最近,我们已经分支了我们软件的新版本,我们在该分支上更改了.net目标和F#核心版本,因此该项目现在针对F#core 4.3.1和.net 4.5.1。
不幸的是,在运行时我收到以下错误:
{“[A] Microsoft.FSharp.Core.FSharpOption`1 [FSharp.Data.Runtime.BaseTypes.XmlElement]无法转换为[B] Microsoft.FSharp.Core.FSharpOption`1 [FSharp.Data.Runtime .BaseTypes.XmlElement]。类型A源自'FSharp.Core,Version = 4.3.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a',位于'默认'位置'C:\ Windows \ Microsoft.Net \ assembly \ GAC_MSIL \ FSharp.Core \ v4.0_4.3.0.0__b03f5f7f11d50a3a \ FSharp.Core.dll'。类型B源自'FSharp.Core,Version = 4.3.1.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a',在上下文'Default'中location'C:\ Script \ AutomatedTestLauncher5.4 \ FSharp.Core.dll'。“}
在following stackoverflow question's answer之后,我尝试在App.config文件中创建以下绑定重定向:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.3.1.0" newVersion="4.3.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
不幸的是,我再次遇到同样的错误。有没有办法解决这个问题,还是我必须找到另一个框架来做我想要的除FSharp.Data以外的其他框架?
答案 0 :(得分:0)
给我提出问题的项目正被另一个项目调用,我没有更改该项目的绑定重定向。我做了,它解决了这个问题。