VS 2015 IntelliSense: ошибка сборки без ссылки
Я просто переключился на VS 2015. У меня есть более старое приложение MVC 5, которое работает против 4.52. В VS 2013 он отлично работает.
В VS 2015 я получаю красные squigglies под моим @Html.TextBoxFor()
с ошибкой, указывающей:
Тип 'Expression < > ' определяется в сборке, которая не является ссылки. Вы должны добавить ссылку на сборку 'System.Core, Версия = 4.0.0.0, Культура = нейтраль, PublicKeyToken = b77a5c561934e089 '.
Проект строит и работает очень хорошо, но я обеспокоен ошибкой IntelliSense, которая никогда не происходила в VS 2013. Хорошо, поэтому я пытаюсь добавить ссылку на System.Core, как рекомендовано в вышеприведенной ошибке, а затем я получаю эта ошибка:
Ссылка на "System.Core" не может быть добавлена. Этот компонент уже автоматически ссылается на систему сборки.
Опять же, это нормально в VS 2013.
Ответы
Ответ 1
У меня была такая же проблема, но в то же время я нашел ответ:
Мне пришлось добавить следующие ссылки на мой web.config(добавить в открывающий тег system.web):
<compilation debug="true" targetFramework="4.5">
<assemblies>
<add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add assembly="Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
Я также изменил целевую структуру с 4.5.1 до 4.5.
p.s Закройте и снова запустите Visual Studio после его изменения.
Ответ 2
Я пробовал большинство из них, что в конечном итоге сработало для меня, это выгрузка проекта, редактирование файла csproj и добавление следующего:
<Reference Include="System.Core" />
Ответ 3
Только удаление решения и получение решения из исходного управления решили для меня, удаление папки .vs и запуск VS2015, поскольку "devenv.exe/resetuserdata" не решило мою проблему, удаление события из кэша компонентов MEF не разрешилось в соответствии с Ответы Razor intellisense не работают в VS 2015.
Ответ 4
При обновлении с 4.5.2 до 4.6.1 я получил именно эти ошибки в своих взглядах. Сборка и запуск решения работали абсолютно нормально. После того, как были опробованы все решения, уже опубликованные здесь (а также проверка работоспособности intellisense, очистка кешей, удаление папок bin и obj, загрузка и перезагрузка проекта), ничего не получилось (system.core уже был собран правильно и добавил эти ссылки на Web.config ничего не сделал). Я провел собственное копание и в конце концов обнаружил, что в проекте, где произошла ошибка, файл Web.config содержал две целевые платформы отладки компиляции и другую целевую инфраструктуру httpRuntime. Вот так:
<system.web>
<authentication mode="None" />
<compilation debug="true" targetFramework="4.6.1" />
<compilation debug="true" targetFramework="4.5.2" />
<httpRuntime targetFramework="4.5.1" />
...
Решение состояло в том, чтобы решить эту проблему, удалив дополнительную целевую инфраструктуру отладки компиляции и убедившись, что все целевые платформы были теми, которые я хотел (4.6.1)
<system.web>
<authentication mode="None" />
<compilation debug="true" targetFramework="4.6.1" />
<httpRuntime targetFramework="4.6.1" />
...
Дважды проверьте это, если ничего не работает. Надеюсь, что это помогает кому-то!
Ответ 5
Я пробовал эти и другие решения в других потоках. Никто не работал.
Что было связано с ремонтом установки Visual Studio, которая находится в подменю "Настройки системы", "Приложения и функции" (нажмите "VS" и выберите "Repair" ). Потребовалось пару часов, но затем проблема исчезла.
Ответ 6
В моем случае он работал после изменения тега <ProjectGuid>
в .csproj
файле на <ProjectGuid>{6C651A5E-8DDA-4680-804E-F9596743CBE8}</ProjectGuid>
и повторного открытия решения. Все приведенные выше решения не помогли мне.
Ответ 7
Если кто-то сталкивался с этой проблемой с
VS 2017,.net Framework версии 4.8 и MVC версии 5.2.7
Then check your Microsoft.CodeDom.Providers.DotNetCompilerPlatform version, If you have 2.0.1 version installed then downgrade it to 2.0.0
![enter image description here]()
Затем проверьте версию MVC, вы должны понизить ее до 5.2.4
![enter image description here]()
Then downgrade Microsoft.AspNet.WebPages 3.2.7 to Microsoft.AspNet.WebPages 3.2.4
and Microsoft.AspNet.Razor 3.2.7 to Microsoft.AspNet.Razor 3.2.4
попробуйте запустить приложение сейчас, оно будет работать.