Подтвердить что ты не робот

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.

4b9b3361

Ответ 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 

попробуйте запустить приложение сейчас, оно будет работать.