Sin embargo, otro error de System.Runtime.InteropServices

Cada proyecto que tenemos con MongoDB tendrá, en un punto de otro, un problema con la biblioteca System.Runtime.InteropServices que no se carga.

Esta vez el error es interesante:

La excepción externa no puede encontrar la versión 4.3.0.0 de la lib. Pero la excepción interna no puede encontrar la versión 4.0.0.0

¿Alguien tiene una idea sobre eso?

Más información sobre el problema:

Entonces, NuGet tiene 4.3.0.0 instalado

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="System.Runtime" version="4.3.0" targetFramework="net462" />
  <package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net462" />
</packages>

paquetes.config&nbsp;confirma que tengo 4.3.0.0 instalado,

sin embargo,app.config&nbsp;que siempre parecen estar fuera de sincronía con la realidad:

  <dependentAssembly>
    <assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
  </dependentAssembly>

Se agregó una línea sobre la versión 4.0.1.0

En la misma línea ... el csproj no tiene sentido:

<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
  <HintPath>x:\Packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
</Reference>

Como afirma hacer referencia a 4.0.1.0 con la ruta de 4.3.0.0

Hay algo roto y siempre está sucediendo con esa misma lib; no solo este proyecto: en cualquier lugar donde incluya MongoDB, esta lib viene como una dependencia y, cada vez, hay algunos problemas aleatorios con ella.

Cuando intento cargar manualmente:

        var Name = new AssemblyName("System.Runtime.InteropServices.RuntimeInformation, Version=4.3.0.0");
        var Asm = Assembly.Load(Name);

falla también.

Estoy descubriendo que System.Runtime.InteropServices.RuntimeInformation.dll NO se copia en la carpeta de compilación, aunque esté incluido en el proyecto.

Encontré una solución desagradable: si incluyo MongoDB en el exe principal, incluso si no lo uso, depende de la biblioteca Interop y esto obligó a copiar la biblioteca a la carpeta de compilación y luego las llamadas posteriores funcionan .