Не удалось загрузить файл или сборку 'Microsoft.Сеть.Инфраструктура,
Я попытался загрузить свой сайт на сервер. Он отлично работал с моим локальным хостом, поэтому я загрузил все в свой localhost wwwroot папку на сервер и изменил строку подключения.
но есть такая ошибка:
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()
проект nopcommerce.
что нужно сделать, чтобы устранить эту ошибку?
15 ответов:
вам нужно будет включить dll с вашим проектом и добавить ссылку на него, а также.
вот ссылка на аналогичную проблему уже на стеке: проблемы зависимости развертывания MVC3
Я обнаружил, что, хотя он работал на моем dev box, сборка не была добавлена в проект. Поиск Microsoft.Сеть.Инфраструктура в NuGet и установить его оттуда. Затем убедитесь, что он имеет локальное копирование выбрано.
установить AspNetMVC3ToolsUpdateSetup загружено с здесь решил бы эту проблему без добавления ссылки
оказывается после выполнения эталонной очистки, она удалена
Microsoft.Web.Infrastructure, но не из пакетов.конфигурационный файл. После попытки добавить его снова с помощьюPackage Manager Console, Visual Studio говорит, что он уже установлен, что является ложным, потому что он был удален.затем я удалил строку кода в
packages.configfile<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />и снова запустил команду
PM> Install-Package Microsoft.Web.Infrastructureпосле этого, теперь он работает нормально.
несмотря на количество ответов, я добавлю еще один, который IMHO делает вещи немного яснее.
Как Роб и wrightmail уже упомянутый
Microsoft.Web.Infrastructure- это пакет NuGet (ссылка не нужна, она есть в Диспетчере пакетов NuGet).по-видимому, на него ссылался ваш проект и внезапно исчез. Ряд причин может существовать, но важно то, что, несмотря на то, что вы, возможно, включили автоматическое восстановление пакета внутри Визуальная Студия by:
- Управление пакетами NuGet для решения (контекстное меню в обозревателе решений),
- разрешить NuGet загружать отсутствующие пакеты (настройки),
- автоматически проверять наличие отсутствующих пакетов во время сборки в Visual Studio (настройки),
некоторые пакеты могут потребовать переустановки вручную. Я не знаю, что смущает NuGet, возможно, вручную удаляя ссылку, но вот решение, которое я обычно применяю в таких случаи. Следующая консоль PM помогает восстановить пакет при сохранении исходной версии (не обновляя, возможно, существующий новый):
Обновление-Пакет Microsoft.Сеть.Инфраструктура-Переустановить
сохранение версии может потребоваться, если вы не хотите случайно перезаписать существующий пакет с его новой версией, которая, возможно, удаляет "старую" функциональность, которую вы, возможно, использовали в своем проекте.
и, как доказательство, несмотря на немного затянутые, что версия не меняется, вот вывод при выполнении команды:
PM> Update-Package Microsoft.Web.Infrastructure -Reinstall Attempting to gather dependencies information for multiple packages with respect to project 'Samples.NuGet\DemoApp\DemoApp', targeting '.NETFramework,Version=v4.5.2' Attempting to resolve dependencies for multiple packages Resolving actions install multiple packages ... Package removal starts here... ... Removed package 'Microsoft.AspNet.Web.Optimization 1.1.3' from 'packages.config' Successfully uninstalled 'Microsoft.AspNet.Web.Optimization 1.1.3' from DemoApp Removed package 'WebGrease 1.5.2' from 'packages.config' Executing script file 'D:\Projects\DemoApp\packages\WebGrease.1.5.2\tools\uninstall.ps1' Successfully uninstalled 'WebGrease 1.5.2' from DemoApp ... More package removals here. Omitted for brevity... ... Removed package 'Microsoft.Web.Infrastructure 1.0.0.0' from 'packages.config' Successfully uninstalled 'Microsoft.Web.Infrastructure 1.0.0.0' from DemoApp ... More package removals here. Omitted for brevity... ... Removed package 'Antlr 3.4.1.9004' from 'packages.config' Successfully uninstalled 'Antlr 3.4.1.9004' from MvcLenseApp Package 'Antlr.3.4.1.9004' already exists in folder 'D:\Projects\Lense.Mvc5\packages' --- Install packages (in reverse order) --- Package 'Antlr.3.4.1.9004' already exists in folder 'D:\Projects\DemoApp\packages' Added package 'Antlr.3.4.1.9004' to 'packages.config' Successfully installed 'Antlr 3.4.1.9004' to DemoApp ... More package installs here. Omitted for brevity... ... Package 'Microsoft.Web.Infrastructure.1.0.0' already exists in folder 'D:\Projects\Lense.Mvc5\packages' Added package 'Microsoft.Web.Infrastructure.1.0.0' to 'packages.config' Successfully installed 'Microsoft.Web.Infrastructure 1.0.0' to MvcLenseApp ... More package installs here. Omitted for brevity... ... Package 'WebGrease.1.5.2' already exists in folder 'D:\Projects\DemoApp\packages' Added package 'WebGrease.1.5.2' to 'packages.config' Executing script file 'D:\Projects\DemoApp\packages\WebGrease.1.5.2\tools\install.ps1' Successfully installed 'WebGrease 1.5.2' to DemoApp Package 'Microsoft.AspNet.Web.Optimization.1.1.3' already exists in folder 'D:\Projects\DemoApp\packages' Added package 'Microsoft.AspNet.Web.Optimization.1.1.3' to 'packages.config' ... End of package re-install. ... Successfully installed 'Microsoft.AspNet.Web.Optimization 1.1.3' to DemoApp PM>конечно, если вы хотите переустановить все пакеты, вам может потребоваться ознакомиться с командами обновления / установки в NuGet здесь и здесь.
Resharper обнаружен Microsoft.Сеть.Инфраструктура как неиспользуемая ссылка, поэтому я удалил ее. Локально работает нормально, но потом я получил ту же ошибку после публикации в виртуалку.
заключение, будьте осторожны при удалении ссылок, помеченных как неиспользуемые Resharper
попробуйте установить веб-платформу из https://www.microsoft.com/web/platform/
надеюсь, что это помогает.
у меня была похожая проблема. NuGet показал, что пакет успешно установлен, но ссылка не была добавлена в мой проект.
под управлением
<PM> Install-Package Microsoft.Web.InfraStructureтакже не помогло, поскольку менеджер пакетов продолжал говорить, что он уже установленЯ, наконец, добавил его вручную, отредактировав файл csproj и добавив следующие строки:
<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>это решило проблему.
испытал эту проблему на новой машине Windows 10 на VS2015 с существующим проектом. Менеджер Пакетов 3.4.4. Восстановление пакетов включено.
восстановление не работает. Пришлось запустить следующее в командной строке диспетчера пакетов
Update-Package -ProjectName "YourProjectName" -Id Microsoft.Web.Infrastructure -Reinstallэто внесло следующие изменения в мой файл решения чего восстановление не делало.
<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>просто добавьте вышеуказанные элементы в раздел ItemGroup в файле решения также будет решена проблема при условии, что ..\packages\Microsoft.Сеть.Инфраструктура.1.0.0.0\lib\net40\Microsoft.Сеть.Инфраструктура.dll файлы существуют.
проще просто сделать-переустановить, но хорошо понять, что он делает по-другому для восстановления пакета.
вам нужно скачать ASP.NET MVC framework на сервере, на котором размещается ваше приложение. Это быстрое исправление просто скачайте и установите отсюда (это MVC 3 framework http://www.asp.net/mvc/mvc3), то бум вы хорошо идти.
для меня
Microsoft.Web.Infrastructure.dllотсутствовал в папке bin, он не был установлен для копирования local в проекте. Скопировал dll из другого проекта в решении и страница загружается.
очень простое решение:
в Visual Studio перейдите в меню Сервис / библиотека Диспетчер пакетов / консоль диспетчера пакетов
<PM> Install-Package Microsoft.Web.InfraStructureприятно провести время
вот мой сценарий.
у меня было мультипроектное решение, содержащее проекты A, B, C .. Н.
проект представляет собой библиотеку кода, который содержит завод для
selectlistобъекты.проект будет работать, как ожидалось в разработке, но при публикации в нашей тестовой среде я получал ошибку, с которой вы столкнулись:
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.то, что произошло, было через Диспетчер пакетов nuget, я случайно установил " Microsoft ASP.NET MVC" какие установленные зависимости для:
- Microsoft.сеть САШ.Бритва
- Microsoft.сеть САШ.Веб-страницы
низкий, и вот, в Microsoft.сеть САШ.Веб-страницы зависят от " Microsoft.Сеть.Инфраструктура."
моим решением было удаление трех пакетов, упомянутых выше (MVC, Razor, WebPages), затем щелкните правой кнопкой мыши ссылки > добавить ссылку > сборки > расширения > система.Сеть.MVC.
Я не знаю, что случилось с моим проектом, но он ссылался на неправильный путь к DLL. Nuget установил его правильно, и он действительно был в моей файловой системе вместе с другими пакетами, но просто неправильно ссылался.
The
packagesпапка существует в двух каталогах от моего проекта, и она только поднималась вверх, начиная путь с..\packages\. Я изменил путь, чтобы начать с..\..\packages\и это фиксированная моя проблема.


Comments