web-dev-qa-db-fra.com

Impossible de charger le fichier ou l'assembly 'DotNetOpenAuth.Core

Le message d'erreur suivant s'affiche lorsque je lance mon application asp net mvc 4:

Could not load file or Assembly 'DotNetOpenAuth.Core, Version=4.0.0.0, 
Culture=neutral, PublicKeyToken=2780ccd10d57b246' or one of its dependencies. 
The system cannot find the file specified

Ceci est le journal des erreurs

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Running under executable  C:\Windows\SysWOW64\inetsrv\w3wp.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: User = notebook\Guilherme
LOG: DisplayName = DotNetOpenAuth.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2780ccd10d57b246
 (Fully-specified)
LOG: Appbase = file:///C:/Users/Guilherme/Documents/Visual Studio 2012/Projects/Gedi/Gedi/
LOG: Initial PrivatePath = C:\Users\Guilherme\Documents\Visual Studio 2012\Projects\Gedi\Gedi\bin
Calling Assembly : Microsoft.Web.WebPages.OAuth, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Users\Guilherme\Documents\Visual Studio 2012\Projects\Gedi\Gedi\web.config
LOG: Using Host configuration file: C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Post-policy reference: DotNetOpenAuth.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2780ccd10d57b246
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/2635bb56/154c3fbb/DotNetOpenAuth.Core.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/2635bb56/154c3fbb/DotNetOpenAuth.Core/DotNetOpenAuth.Core.DLL.
LOG: Attempting download of new URL file:///C:/Users/Guilherme/Documents/Visual Studio 2012/Projects/Gedi/Gedi/bin/DotNetOpenAuth.Core.DLL.
LOG: Attempting download of new URL file:///C:/Users/Guilherme/Documents/Visual Studio 2012/Projects/Gedi/Gedi/bin/DotNetOpenAuth.Core/DotNetOpenAuth.Core.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/2635bb56/154c3fbb/DotNetOpenAuth.Core.EXE.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/2635bb56/154c3fbb/DotNetOpenAuth.Core/DotNetOpenAuth.Core.EXE.
LOG: Attempting download of new URL file:///C:/Users/Guilherme/Documents/Visual Studio 2012/Projects/Gedi/Gedi/bin/DotNetOpenAuth.Core.EXE.
LOG: Attempting download of new URL file:///C:/Users/Guilherme/Documents/Visual Studio 2012/Projects/Gedi/Gedi/bin/DotNetOpenAuth.Core/DotNetOpenAuth.Core.EXE.

J'ai déjà supprimé toutes les références de DotNetOpenAuth avec le gestionnaire de package. De plus, j’ai vérifié par mes propres références pour chaque montage d’authentification que j’avais dans mon projet et il n’y en a pas.

Ceci est mon packages.config

<packages>
  <package id="AutoMapper" version="2.2.0" targetFramework="net45" />
  <package id="EntityFramework" version="5.0.0" targetFramework="net45" />
  <package id="jQuery" version="1.7.1.1" targetFramework="net45" />
  <package id="jQuery.UI.Combined" version="1.8.20.1" targetFramework="net45" />
  <package id="jQuery.Validation" version="1.9.0.1" targetFramework="net45" />
  <package id="knockoutjs" version="2.1.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.Mvc" version="4.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.Razor" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.Web.Optimization" version="1.0.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi" version="4.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.Client" version="4.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.Core" version="4.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.WebHost" version="4.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebPages" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebPages.Data" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebPages.WebData" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.jQuery.Unobtrusive.Ajax" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.jQuery.Unobtrusive.Validation" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.Net.Http" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
  <package id="Modernizr" version="2.5.3" targetFramework="net45" />
  <package id="Newtonsoft.Json" version="4.5.11" targetFramework="net45" />
  <package id="Repository" version="1.0.2.12" targetFramework="net45" />
  <package id="RestSharp" version="103.4" targetFramework="net45" />
  <package id="WebGrease" version="1.1.0" targetFramework="net45" />
</packages>

Merci

82
Dimas Longo

Si vous ne souhaitez pas utiliser OAuth, supprimez les références: les WebPages OAuth DLL (Je pense que c'est Microsoft.Web.WebPages.OAuth .dll 1) et les DLL DotNetOpenAuth.


1: Vous pouvez trouver le nom du fichier dans Calling Assembly. Donc, enlever tous les calling Assembly de DotNetOpenAuth.Core devrait fonctionner pour vous. Cette approche devrait fonctionner pour d'autres références manquantes non utilisées.

82
Ian Li

J'ai eu le même problème. C'était vraiment étrange car le projet fonctionnait bien la veille.

La suppression des dossiers obj et bin du dossier de projet, le nettoyage de la solution et sa reconstruction ont fonctionné.

J'espère que ça t'as aidé.

76
Sylwester Gryzio

J'ai vu cela se produire lors du déploiement d'une application MVC en tant que bin deploy. Lorsque vous cliquez avec le bouton droit sur un projet et sélectionnez Add deployable dependencies VS ajoutera les références à Oauth si vous cochez la case en regard de ASP .NET Webpages with Razor syntax.

Pour résoudre ce problème, supprimez le _bin_deployableAssemblies dossier, ainsi que le dossier bin de votre application, puis nettoyez et reconstruisez votre application, elle fonctionnera à nouveau.

22
Jack

Dans mon cas, l'application MVC4 fonctionnait correctement dans le débogueur VS2012, mais le message d'erreur "Impossible de charger le fichier ou l'assembly 'DotNetOpenAuth.Core'" lorsque je publiais l'application sur le serveur.

Le fait de cocher la case "Supprimer tous les fichiers existants avant la publication" dans l'onglet Paramètres de la fenêtre Publier Web a résolu le problème.

File System Publishing Settings

16
mitaka

J'ai résolu le problème en installant le paquet en utilisant Nuget

Install-Package Microsoft.AspNet.WebPages.OAuth
11
mLar

Il suffit de sélectionner "Supprimer les fichiers supplémentaires à la destination" dans les paramètres de publication. Ça marche pour moi

4
Anpix

En installant les deux packages suivants, j'ai résolu ce problème sur VS2012 Professional Update 4 RC:

  1. Ouvrez la console du gestionnaire de packages à partir du menu:

    Outils | Bibliothèque Package Gérer | Console du gestionnaire de paquets

  2. Paquet d'installation DotNetOpenAuth.AspNet

  3. Package d'installation Microsoft.AspNet.WebHelpers

J'espère que cela vous aide !!!

3
user2969674

Essayez de rechercher une solution globale (ctrl + shift + f si vous ne l’avez pas modifiée) pour la valeur '2780ccd10d57b246'. Je suppose que vous le trouverez dans votre web.config.

2
Heather

Une autre solution consiste à créer une dépendance d'assemblage comme suit:

<dependentAssembly>
  <assemblyIdentity name="DotNetOpenAuth.AspNet"
                    publicKeyToken="2780ccd10d57b246"
                    culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" />
</dependentAssembly>
<dependentAssembly>
  <assemblyIdentity name="DotNetOpenAuth.Core"
                    publicKeyToken="2780ccd10d57b246"
                    culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" />
</dependentAssembly>
1
MuJosh

Je n'ai pas la réputation de commenter, mais je peux vérifier que j'ai eu ce problème et Jack a donné la bonne solution pour moi. J'avais récemment appuyé sur Add Service Reference (Ajouter une référence de service) et le programme contenant le message d'erreur ci-dessus s'est rompu.

La suppression du dossier _bin_deployableAssemblies et du dossier bin de votre application, puis du nettoyage et de la reconstruction de votre application, a permis à celle-ci de fonctionner à nouveau.

1
JPK

pour moi, cela a fonctionné comme suit, en utilisant la console du gestionnaire de l’emballeur, j’ai désinstallé les paquets, en suivant la séquence de commande suivante et je l’ai réinstallé, cela a résolu mon problème.

Désinstaller

Uninstall-Package Microsoft.AspNet.WebPages.OAuth
Uninstall-Package DotNetOpenAuth.AspNet 
Uninstall-Package DotNetOpenAuth.OpenId.RelyingParty
Uninstall-Package DotNetOpenAuth.OpenId.Core 
Uninstall-Package DotNetOpenAuth.OAuth.Consumer
Uninstall-Package DotNetOpenAuth.OAuth.Core
Uninstall-Package DotNetOpenAuth.core

Si vous n’utilisez pas les packages ci-dessus, cela devrait résoudre le problème. Pour installer à nouveau ce qui précède au cas où vous en auriez besoin, procédez comme suit.

Réinstaller

install-Package DotNetOpenAuth.AspNet 
install-Package Microsoft.AspNet.WebPages.OAuth
install-Package DotNetOpenAuth.OpenId.RelyingParty
install-Package DotNetOpenAuth.OpenId.Core 
install-Package DotNetOpenAuth.OAuth.Consumer
install-Package DotNetOpenAuth.OAuth.Core
install-Package DotNetOpenAuth.core

recommandé:

  • allez dans le dossier bin du projet, effacez-le
  • quand publier sur IIS, supprimez le répertoire virtuel et assignez à nouveau le site Web à IIS, car je rencontrais le problème d'avoir de l'argent sur le serveur qui posait problème ...
1
Adel

J'ai eu le même problème ici. Mon web.config publié n'a pas eu les lignes:

  <dependentAssembly>
    <assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" />
    <bindingRedirect oldVersion="1.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
  </dependentAssembly>

Vient d'ajouter et cela a fonctionné.

0
Thiago

Supprimez simplement le dossier BIN de wwwroot et publiez-le à nouveau.

0
fede

J'ai pu résoudre ce problème en supprimant Microsoft.AspNet.Membership.OpenAuth

0
Cristian Vintila

Je rencontre ce problème lorsque je travaille à la mise à jour de toutes nos bibliothèques. Ce lien m'a aidé à résoudre ce problème. https://www.devexpress.com/Support/Center/Question/Details/Q554890/the-could-not-load-file-or-Assembly-dotnetopenauth-core-version-4-0-0- 0-error-message-is .

En particulier, j'ai ajouté ces redirections de liaison vers mon fichier web.config.

      <dependentAssembly>
    <assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780CCD10D57B246" culture="neutral" />
    <bindingRedirect oldVersion="1.0.0.0-4.1.0.0" newVersion="4.3.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="DotNetOpenAuth.AspNet" publicKeyToken="2780CCD10D57B246" culture="neutral" />
    <bindingRedirect oldVersion="1.0.0.0-4.1.0.0" newVersion="4.3.0.0" />
  </dependentAssembly>
0
Oscar Cauich

Pour moi, j'ai aidé à ajouter au fichier csproj la section suivante:

<PropertyGroup>
   <PostSharpHostConfigurationFile>web.config</PostSharpHostConfigurationFile>            
</PropertyGroup>
0
Iwona Kubowicz

J'avais aussi cette erreur, mais avec un projet ASP.NET MVC 5. Je l'ai résolu en installant le package DotNetOpenAuth.Mvc5 et en appelant AsActionResultMvc5 () au lieu de AsActionResult ().

0
TheNameless

Au cas où cela aiderait quelqu'un - je ne pouvais pas désinstaller les composants DotNetOpenAuth via Nuget, j'ai donc résolu cette erreur en les supprimant directement de la liste des références, puis en réinstallant dotnetopenauth via nuget.

0
Fijjit