2011-10-31 20 views
21

Después de instalar VS11, empecé a tener el siguiente error:"Considerar app.config reasignación de reunión ..." de advertencia en F #

Consider app.config remapping of assembly "FSharp.Core, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" from Version "2.0.0.0" [C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\2.0\Runtime\v2.0\FSharp.Core.dll] to Version "4.0.0.0" [C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\2.0\Runtime\v4.0\FSharp.Core.dll] to solve conflict and get rid of warning. C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1490,5): warning MSB3247: Found conflicts between different versions of the same dependent assembly.

¿Qué es exactamente debo hacer? No tengo idea de cómo hacer una reasignación.

Respuesta

18

A continuación se muestra un ejemplo de app.config que hace lo que se sugiere. Sin embargo, ¿qué hay en su proyecto y qué referencia de FSharp.Core hay? ¿Está apuntando a .Net 4.5 o 4.0 o qué? ¿Este proyecto hace referencia a alguna biblioteca anterior de F #? Normalmente, esto se debe a que dos proyectos hacen referencia a diferentes versiones de FSharp.Core.dll, p. verifique los nodos <Reference> en los archivos .fsproj.

<?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> 
+0

No hay una versión de FSharp.Core mencionada en el fsproj. Aquí hay un enlace (http://dl.dropbox.com/u/4571/send.zip) a los archivos fsproj. Estaba buscando en ellos, pero no vi nada extraño. Me estoy dirigiendo .NET 4.0 CL y no estoy al tanto de hacer referencia a nada antiguo, pero podría ser :) –

+0

¿Tiene alguna otra sugerencia? –

+0

Sí. Cree un nuevo proyecto F # con VS11 e inspeccione su archivo .fsproj. Ahora cambie sus proyectos existentes eliminando las líneas '' de los archivos de objetivos y reemplazándolos con los que se ven en el proyecto VS11 recién creado. Además, el proyecto recién creado tendrá explícitamente '' s en mscorlib y FSharp.Core. Añádalos a sus proyectos si no están allí (con la versión/orientación deseada si es necesario). Creo que las cosas van a funcionar. – Brian

0

Si usted ha logrado actualizar así, no debería haber ningún problema tal ... A menos que utilice alguna biblioteca de terceros, que se utiliza en sí FSharp.Core de edad. En mi caso, es FSharpPowerPack quien hace esto.

Así que tiene que actualizar esa biblioteca primero para deshacerse de este mensaje.

3

mismo error relacionado con Json.Net

En el archivo de proyecto que tenía

<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> 

y

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

Eliminación de la anterior resuelve el problema.