web-dev-qa-db-fra.com

Impossible de charger le fichier ou l'assembly System.Web.WebPages.Deployment

Je travaille en développant une page Web système et apparaît soudainement cette erreur:

Could not load file or Assembly 'System.Web.WebPages.Deployment, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

Je vérifie déjà la configuration de mes fichiers xml et tout est beau. Voici la trace de la pile:

[FileNotFoundException: Could not load file or Assembly 'System.Web.WebPages.Deployment, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.]
   System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0
   System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +210
   System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection) +242
   System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +17
   System.Reflection.Assembly.Load(String assemblyString) +35
   System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +122

[ConfigurationErrorsException: Could not load file or Assembly 'System.Web.WebPages.Deployment, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.]
   System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +12480704
   System.Web.Configuration.AssemblyInfo.get_AssemblyInternal() +202
   System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +331
   System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath, Boolean& isRefAssemblyLoaded) +148
   System.Web.Compilation.BuildManager.ExecutePreAppStart() +172
   System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +1151

[HttpException (0x80004005): Could not load file or Assembly 'System.Web.WebPages.Deployment, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +12601936
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +159
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +12441597
11
user2024262

S'il vous plaît essayez les étapes suivantes.

  1. Vérifiez la version de System.Web.Webpages dans vos références. Dites que votre version est = X.X.X.X

2. Dans Webconfig 

a.Ajouter d'abord l'Assemblée

<assemblies>        
    <add Assembly="System.Web.WebPages, Version=X.X.X.X, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  </assemblies>

b.Lier l'assembly pour l'exécution

<runtime>
<assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
    <bindingRedirect oldVersion="0.0.0.0-X.X.X.X" newVersion="X.X.X.X"/>
  </dependentAssembly>        
</assemblyBinding>

3.Assurez-vous d'avoir ajouté la clé correcte

<appSettings>
    <add key="webpages:Version" value="X.X.X.X"/>
</appSettings>

Cela a fonctionné pour moi. J'espère que ça vous aidera aussi.

7
Liakat

J'ai résolu ce problème en ajoutant la ligne ci-dessous dans web.config du projet ...  

Avant de marquer MANAGE dans NUGET "Microsoft.AspNet.Mvc/5.1.2", "Pages Web Microsoft ASP.NET/3.1.2", j'essaie n'importe quoi mais rien ne fonctionne (vraiment !! désinstaller VS et lire beaucoup d'articles) 

<dependentAssembly>
   <assemblyIdentity name="System.Web.WebPages.Deployment" publicKeyToken="31bf3856ad364e35" />
   <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>

Bonne chance

4
user3740445

Dans mon cas, cela était dû à une assemblée corrompue référencée qui était due au redémarrage en panne de mon ordinateur portable.

Pour résoudre ce problème, veuillez suivre ces étapes

  1. Nettoyez tous les fichiers dans les dossiers suivants de votre projet ou vous pouvez simplement cliquer sur nettoyer le projet et la solution propre

    • \poubelle 
    • \ obj
  2. Nettoyez le dossier temporaire Appdata De mon ordinateur Win 7 et l’utilisez ici C:\Utilisateurs\votre_nom_utilisateur\AppData\Local\Temp\Temporary Fichiers ASP.NET dans Windows 7

J'espère que cela t'aides!

1
Srikant

copie ce code dans la "configuration" de Web.config ça le fera

  <runtime>
  <assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="System.Web.WebPages.Deployment" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
    <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0"/>
  </dependentAssembly>
</assemblyBinding></runtime>
0
Vagus

Ce que je fais habituellement, c’est d’aller sur la machine où vous compilez votre code et d’aller dans Dos prompt et de taper ceci

C:> dir System.Web.WebPages.Depl* /s 

Il peut y en avoir plusieurs habituellement

c:/windows/Microsoft.Net/Assembly/GAG_MSIL/System.web.WebPage/v....../

vérifiez la date et assurez-vous qu'elle est identique à System.Web.WebPages.dll et copiez-la dans le chutier où se trouve votre ordinateur cible. Cela devrait résoudre le problème.

0
chan