Тип "выражение" определяется в сборке, на которую нет ссылки
In ASP.NET MVC 4.5.2 Framework.
после ввода
@Html.LabelFor()
or
@Html.EditorFor()
in view
Я получаю ошибку: тип "Expression" определяется в сборке, на которую нет ссылки.Необходимо добавить ссылку на систему assembly.Ядро, версия=4.0.0.0, культура=нейтральная, PublicKeyToken=b77a5c561934e089'.
Я добавил справочную систему сборки.Ядро.dll, версия 4.0.0.0, версия выполнения v4.0.30319. а также я в сеть.config
17 ответов
Я запустил тот же вопрос, что и вы, хотя и намного позже. Проблема заключалась в том, что я не смог получить доступ к представлениям Razor (.cshtml), поскольку я получал сообщение об ошибке о том, что у меня отсутствовала ссылка на сборку, а именно System.Web.Mvc
, хотя это было в ссылках на проект. После расследования я заметил, что установленная версия NuGet была 5.2.3, в то время как проект требовал 5.2.0. Решение понизить версию модели MVC.
- перейти к проекту - > пакет NuGet Менеджер.
- Поиск MVC; это будет первый результат.
- далее, чтобы выбрать понижение из раскрывающегося списка в деталях NuGet-пакет и отправить.
подтвердите все диалоги и вы готовы пойти.
Я не уверен, что у вас все еще есть эта проблема или нет, но у меня была та же проблема.
я смог найти решения здесь
https://stackoverflow.com/questions/6496223/compilation-error-in-net-4-0-web-config-linq-not-found
<add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
надеюсь, это поможет..
эта ошибка означает, что Visual Studio не может найти систему.Сеть.Сборка Mvc для питания intellisense для представлений Razor. Для его исправления может потребоваться одно или оба из следующих действий.
- убедитесь, что версия .NET framework для компиляции свойство в основной сети.config (один в корне веб-сайта) является то же, что указано в проекте свойства.
[root] / Web.config:
<system.web>
<compilation targetFramework="4.6" />
Свойства Проекта:
- обеспечить версию сборки MVC, указанную в представлениях сеть.config (тот, который находится в папке views) совпадает с MVC сборка, которую вы используете в своем проекте.
[просмотр папки] / web.config:
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
сборка в MVC Ссылочные Свойства:
- закройте файл cshtml
- перестроить решение
- открыть файл cshtml
- еще ошибки? Перезапустите Visual studio
- еще ошибки? Используйте ответ ctm1988
Я пробовал большинство из них, что в конечном итоге сработало для меня, это выгрузка проекта, редактирование файла csproj и добавление следующего:
<Reference Include="System.Core" />
в моем случае это сообщение было показано только при включении Resharper. Я очистил кэш Resharper, перезапустил VS, выключил Resharper и снова включил его. Сообщение скрываеться.
у меня была такая же точная проблема, и ни одно из решений не исправило проблему. Я должен был добавить это в свой web.config
внутри System.Web
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
Я удалил его при изменении некоторых config
вокруг.
убедитесь, что для действия сборки файла cshtml задано значение "Content".
Я использую ReSharper и заметил, что по какой-то причине файл, который генерируется по умолчанию " нет " при вызове шаблона.
У меня была такая же проблема с отсутствующей сборкой, и случилось так, что сборка VS2017 не скопировала ее должным образом в папку Bin. Эти шаги помогли мне:
- перейдите к узлу ссылок веб-проекта
- найти ссылку на System.Ядро
- откройте окно VS Properties
- в окне Свойства измените Copy Local: False на True
из этого комментария: CS0012: Тип "#### # # любой тип##### " определяется в сборке, на которую не ссылаются
для меня в меню проекта была опция "включить C# 6.0 / VB 14". Выбор этой опции сделал трюк. Ранее я пытался изменить web.config, перезапуск Visual Studio и т. д., Как было предложено в этом сообщении.
В Интернете.config мне нужно было изменить:
<system.web>
<compilation debug="true" targetFramework="4.7">
to
<system.web>
<httpRuntime targetFramework="4.7" />
<compilation debug="true" targetFramework="4.7">
Это произошло с одним из моих взглядов - все остальные были в порядке. Я сделал следующее:--1-->
- создать новый вид
- скопируйте и вставьте содержимое из старого представления в новое
- удалил старый
- переименовал новый в старый
в моем случае решением было переместить ConnectionString внутри сети.Конфиг. Это утверждение должно быть после раздела AppSettings.
у меня тоже эта проблема.
Меняется targetFramework="4.5.2"
до targetFramwork="4.5"
в web.конфигурационный файл решил это.