J'ai essayé de télécharger mon site Web sur un serveur. Cela fonctionnait bien avec mon hôte local, j'ai donc téléchargé tout le contenu de mon dossier localhost wwwroot
sur le serveur et modifié la chaîne de connexion.
Mais il y a cette erreur:
Exception information:
Exception type: InvalidOperationException
Exception message: The pre-application start initialization method Start on type RouteDebug.PreApplicationStart threw an exception with the following error message: Could not load file or Assembly 'Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified..
at System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1 methods)
at System.Web.Compilation.BuildManager.CallPreStartInitMethods()
at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException)
Could not load file or Assembly 'Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
at RouteDebug.PreApplicationStart.Start()
Le projet était nopcommerce
.
Que devrait-on faire pour résoudre cette erreur?
Vous devrez inclure la dll avec votre projet et y ajouter une référence.
Voici un lien vers un problème similaire déjà sur Stack: MVC3 Deployment Dependency Problems
J'ai trouvé que même si cela fonctionnait sur ma boîte de dev, l'Assemblée n'était pas ajoutée au projet. Recherchez Microsoft.Web.Infrastructure dans NuGet et installez-le à partir de là. Ensuite, assurez-vous que l'option Copie locale est sélectionnée.
Après un nettoyage de référence, il a finalement supprimé Microsoft.Web.Infrastructure
, mais pas du fichier packages.config. Après avoir essayé de l'ajouter à nouveau à l'aide du Package Manager Console
, Visual Studio indique qu'il est déjà installé, ce qui est faux car il a été supprimé.
J'ai ensuite supprimé la ligne de code dans le fichier packages.config
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
et a lancé la commande à nouveau
PM> Install-Package Microsoft.Web.Infrastructure
Après cela, maintenant cela fonctionne bien.
Installer AspNetMVC3ToolsUpdateSetup téléchargé depuis ici résoudrait ce problème sans ajouter de référence
Resharper a détecté Microsoft.Web.Infrastructure comme une référence inutilisée et je l'ai donc supprimée. Localement, cela fonctionnait bien, mais j'ai eu la même erreur après la publication sur dev.
Conclusion, faites attention lorsque vous supprimez des références marquées comme inutilisées par Resharper
Essayez d’installer Web Platform à partir de https://www.Microsoft.com/web/platform/
J'espère que ça aide.
Problème rencontré sur un nouvel ordinateur Windows 10 sous VS2015 avec un projet existant . Package Manager 3.4.4 . Restauration des packages activée.
La restauration ne semble pas fonctionner complètement . Il a fallu exécuter ce qui suit sur la ligne de commande du gestionnaire de packages.
Update-Package -ProjectName "YourProjectName" -Id Microsoft.Web.Infrastructure -Reinstall
Cela a apporté les modifications suivantes à mon fichier de solution La restauration n'a PAS été effectuée.
<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath> <Private>True</Private> </Reference>
Ajouter simplement les éléments ci-dessus à la section ItemGroup dans votre fichier de solution résoudra ÉGALEMENT le problème à condition que ..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll existe.
Il est plus facile de simplement effectuer la réinstallation, mais il est bon de comprendre ce que cela fait différemment de la restauration du paquet.
J'avais un problème similaire. NuGet a montré que le paquet a été installé avec succès, mais la référence n'a pas été ajoutée à mon projet.
Exécuter <PM> Install-Package Microsoft.Web.InfraStructure
n'a également pas aidé car le gestionnaire de paquets disait qu'il était déjà installé
Je l'ai finalement ajouté manuellement en éditant le fichier csproj et en ajoutant ces lignes:
<Reference Include="Microsoft.Web.Infrastructure">
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
<Private>True</Private>
</Reference>
Cela a résolu le problème.
Pour moi, Microsoft.Web.Infrastructure.dll
était absent du dossier bin, il n'était pas configuré pour copier en local dans le projet . Copié la DLL d'un autre projet dans la solution et la page se charge.
Vous devez télécharger le framework ASP.NET MVC sur le serveur hébergeant votre application. C'est une solution rapide, il suffit de télécharger et d'installer à partir d'ici (Ceci est le framework MVC 3 http://www.asp.net/mvc/mvc3 ), alors vous êtes prêt à partir.
Je ne sais pas ce qui s'est passé avec mon projet, mais celui-ci faisait référence au mauvais chemin d'accès à la DLL. Nuget l'a installé correctement et c'était bien sur mon système de fichiers avec les autres packages, mais juste référencé de manière incorrecte.
Le dossier packages
existe deux répertoires en haut de mon projet et il ne s’en élevait qu’un en commençant le chemin par ..\packages\
. J'ai changé le chemin pour commencer avec ..\..\packages\
et cela a résolu mon problème.
Commencez par supprimer Microsoft.Web.Infrastructure de package.config.
et a de nouveau exécuté la commande
PM> Install-Package Microsoft.Web.Infrastructure Et assurez-vous que la propriété Copier en local doit être vraie.
Solution très simple:
Dans Visual Studio, accédez à Outils/Gestionnaire de packages de bibliothèque/Console du gestionnaire de packages.
<PM> Install-Package Microsoft.Web.InfraStructure
Passez un bon moment
Voici mon scénario.
J'ai eu une solution multi projet contenant les projets A, B, C .. N.
Le projet B était une bibliothèque de code contenant une fabrique pour les objets selectlist
.
Le projet se déroulerait comme prévu en développement, mais lors de la publication dans notre environnement de test, l'erreur que vous rencontriez se présentait:
Could not load file or Assembly 'Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
Ce qui s’était passé était par le biais du gestionnaire de paquets Nuget; j’avais accidentellement installé "Microsoft ASP.NET MVC" qui installait des dépendances pour:
Bas et voici, Microsoft.AspNet.WebPages dépend de "Microsoft.Web.Infrastructure".
Ma solution consistait à désinstaller les trois packages mentionnés ci-dessus (MVC, Razor, WebPages), puis à cliquer avec le bouton droit sur références> ajouter une référence> Assemblages> Extensions> System.Web.MVC.
Dans certains cas, nettoyer le projet/la solution, retirer physiquement bin/
et obj/
et reconstruire permettrait de résoudre ces erreurs. Cela peut arriver lorsque, par exemple, des packages et des références sont installés/ajoutés puis supprimés, laissant ainsi des artefacts.
Cela m'est arrivé à Microsoft.Web.Infrastructure
: au début, le projet ne nécessitait pas cet assemblage. Après quelques expériences dont l’effet net était supposé être nul à la fin, j’ai eu cette exception. Les étapes ci-dessus l'ont résolu sans qu'il soit nécessaire d'installer une dépendance inutilisée.