web-dev-qa-db-ja.com

「アセンブリのapp.config再マッピングを検討してください...」F#の警告

VS11をインストールした後、次のエラーが発生し始めました。

アセンブリ "FSharp.Core、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a"のapp.config再マッピングをバージョン "2.0.0.0" [C:\ Program Files(x86)\ Reference Assemblies\Microsoft\FSharp\2.0\Runtime\v2。 0\FSharp.Core.dll]をバージョン "4.0.0.0"に変更[C:\ Program Files(x86)\ Reference Assemblies\Microsoft\FSharp\2.0\Runtime\v4.0\FSharp.Core.dll]を使用して競合を解決し、警告を取り除きます。 C:\ Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1490,5):警告MSB3247:同じ依存アセンブリの異なるバージョン間で競合が見つかりました。

正確にはどうすればよいですか?私はそのような再マッピングを行う方法を知りません。

24
Oldrich Svec

以下は、提案されていることを実行するサンプルapp.configだと思います。ただし、プロジェクトには何があり、FSharp.Core参照には何がありますか?あなたは.Net 4.5または4.0または何をターゲットにしていますか?このプロジェクトは古いF#ライブラリを参照していますか?これは通常、2つのプロジェクトがFSharp.Core.dllの異なるバージョンを参照するためです。 .fsprojファイルの<Reference>ノードを確認してください。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
      <dependentAssembly>
          <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a"
                            culture="neutral"/>
<!--      <bindingRedirect oldVersion="0.0.0.0-2.9.9.9" newVersion="4.3.0.0"/>  -->
          <bindingRedirect oldVersion="2.0.0.0" newVersion="4.0.0.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>
21
Brian

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>

そして

<ItemGroup>
   <Reference Include="Newtonsoft.Json">
      <HintPath>..\packages\Newtonsoft.Json.5.0.6\lib\net45\Newtonsoft.Json.dll</HintPath>
   </Reference>
</ItemGroup>

古いものを削除することで問題は解決しました。

3
cilerler

うまくアップグレードできていれば、そのような問題はないはずです...サードパーティのライブラリを使用している場合を除き、古いFSharp.Core自体を使用しています。私の場合、これを行うのはFSharpPowerPackです。

そのため、このメッセージを取り除くには、最初にそのライブラリを更新する必要があります。

0
Andriy K