F# &引用;考虑汇编的App.CONFIG重新映射…用F表示警告#

F# &引用;考虑汇编的App.CONFIG重新映射…用F表示警告#,f#,compiler-warnings,F#,Compiler Warnings,安装VS11后,我开始出现以下错误: 考虑将程序集“FSharp.Core,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”从版本“2.0.0.0”[C:\Program Files(x86)\Reference assembly\Microsoft\FSharp\2.0\Runtime\v2.0\FSharp.Core.dll]重新映射到版本“4.0.0.0.0”[C:\Program Files(x86)\Reference Assemblym

安装VS11后,我开始出现以下错误:

考虑将程序集“FSharp.Core,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”从版本“2.0.0.0”[C:\Program Files(x86)\Reference assembly\Microsoft\FSharp\2.0\Runtime\v2.0\FSharp.Core.dll]重新映射到版本“4.0.0.0.0”[C:\Program Files(x86)\Reference Assemblyments\Microsoft\FSharp\2.0\Runtime\v4.0\FSharp.Core.dll]解决冲突,消除警告。 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1490,5):警告MSB3247:发现同一依赖程序集的不同版本之间存在冲突


我到底该怎么办?我不知道如何进行这样的重新映射。

下面是一个示例app.config,它实现了建议的功能。但是,您的项目中有什么,以及FSharp.Core引用是什么?你的目标是.Net 4.5还是4.0还是什么?该项目是否引用了一些较旧的F#库?这通常是因为两个项目引用了不同版本的FSharp.Core.dll,例如检查.fsproj文件中的
节点


如果您已经很好地完成了升级,那么应该不会有这样的问题。。。除非您使用的是第三方库,否则它会使用旧的FSharp.Core本身。在我的情况下,是PowerPack做的


因此,您必须首先更新该库以删除此消息。

与Json.Net相关的相同错误

在我的项目文件中

<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
   <SpecificVersion>False</SpecificVersion>
   <HintPath>..\packages\Newtonsoft.Json.6.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>

假的
..\packages\Newtonsoft.Json.6.0.1\lib\net45\Newtonsoft.Json.dll


..\packages\Newtonsoft.Json.5.0.6\lib\net45\Newtonsoft.Json.dll

删除旧版本解决了问题。

fsproj中没有提到FSharp.Core的版本。这里是指向fsproj文件的链接()。我在看它们,但没有看到任何奇怪的东西。我的目标是.NET 4.0 CL,我不知道引用了任何旧的内容,但它可能是:)您有任何进一步的建议吗?是的。使用VS11创建一个新的F#项目,并检查其.fsproj文件。现在,通过从目标文件中删除
行并将其替换为新创建的VS11项目中的行,来更改现有项目。另外,新创建的项目将对mscorlib和FSharp.Core具有显式的
s。如果不存在,则将其添加到项目中(如果需要,使用所需的版本/目标)。如果我这样做了,这个解决方案在没有VS11的计算机上能工作吗?我在该项目上与一位没有在机器上安装VS11的同事合作。该工具帮助我诊断了一个类似的问题:
<ItemGroup>
   <Reference Include="Newtonsoft.Json">
      <HintPath>..\packages\Newtonsoft.Json.5.0.6\lib\net45\Newtonsoft.Json.dll</HintPath>
   </Reference>
</ItemGroup>