web-dev-qa-db-fra.com

Impossible de charger le fichier ou l'assembly 'System.Runtime.InteropServices.RuntimeInformation

J'obtiens cette erreur chaque fois que j'essaie de lancer un projet de travail Web avec un aperçu d'application et un cadre d'entité.

System.IO.FileLoadException: "Impossible de charger le fichier ou l'assembly" System.Runtime.InteropServices.RuntimeInformation, Version = 0.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a "ou l'une de ses dépendances. La définition du manifeste de l'assembly localisé ne correspond pas à la référence de l'assembly. (Exception de HRESULT: 0x80131040) '

J'ai installé les packages de pépites suivants

Microsoft.Azure.WebJobs.Logging.ApplicationInsights version 2.1.0-beta4

Microsoft.Extensions.Logging version 2.0.0

Microsoft.Extensions.Logging.Console version 2.0.0.

Tout cela fonctionne avec un nouveau projet de travail Web Visual studio 2017, lorsque j'essaie d'inclure une base de code existante, principalement en utilisant le framework d'entité que j'obtiens cette erreur. Quand je regarde la référence dans celle qui fonctionne, je n'ai pas le System.Runtime.InteropServices.RuntimeInformation, mais il a été ajouté au projet avec le framework d'entité. Il semble faire partie de la norme .net, mais comment se fait-il que je n'ai pas besoin de la norme .net pour ma nouvelle application console!

enter image description here

Je ne sais pas pourquoi sa recherche de la version 0.0.0.0 soit comme celle que j'ai est 4.0.2.0

J'ai également essayé d'ajouter ceci au dossier de projet mais cela n'a pas fonctionné.

<PropertyGroup>
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
   <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>

Toute aide serait grandement appréciée

Merci beaucoup

16
Andrew

Pourriez-vous manquer l'assembly chargé dans votre fichier de configuration? Assurez-vous d'avoir quelque chose de similaire à ce qui suit dans votre web.config. NuGet ferait normalement cela mais peut-être pas et il ne sait pas quoi charger

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

Confirmer le commentaire ci-dessus de dwilliss a également fonctionné pour moi. La solution était de se débarrasser de:

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

(Dans mon cas, depuis app.config, pour un service Windows.) Mon projet a une dépendance indirecte à System.Runtime.InteropServices.RuntimeInformation uniquement. Il s'agit d'une dépendance d'un package NuGet que j'ai importé.

19
Adam