Ошибка CS0234: тип или имя пространства имен «AspNetCore» не существует в пространстве имен «Microsoft» (отсутствует ссылка на сборку?)

Я пытаюсь обновить следующий шаблонный проект до ASP.NET Core 1.1: https://github.com/wilanbigay/aspnet-core-aurelia-typescript-starter

После запуска dotnet migrate файл project.json был удален в пользу нового файла csproj.

Используя Visual Studio Code и расширение Nuget4Code, я обновил все компоненты до ASP.NET Core 1.1.

CsProj теперь содержит такие записи:

<ItemGroup>
    <PackageReference Include="Microsoft.NET.Sdk">
      <Version>1.0.0-alpha-20161104-2</Version>
      <PrivateAssets>All</PrivateAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.NET.Sdk.Web">
      <Version>1.0.0-alpha-20161104-2</Version>
      <PrivateAssets>All</PrivateAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.NETCore.App">
      <Version>1.1.0</Version>
    </PackageReference>
    <PackageReference Include="Microsoft.AspNetCore.Mvc">
      <Version>1.1.0</Version>
    </PackageReference>

Однако у меня есть проблемы с компиляцией. Кажется, что пространство имен AspNetCore не найдено. Я получаю ошибку

Ошибка CS0234: тип или имя пространства имен «AspNetCore» не существует в темпе имен «Microsoft» (вам не хватает ссылки на сборку?)

Я не уверен, как я могу проверять ссылки, как раньше в Visual Studio в разделе ссылок. Как я могу это решить?


person Chris Nevill    schedule 15.12.2016    source источник


Ответы (11)


У нас только что возникла эта проблема, когда визуальная студия услужливо добавила локальную ссылку, а не через nuget.

<ItemGroup>
  <Reference Include="Microsoft.AspNetCore.Mvc.Core">
    <HintPath>C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.mvc.core\2.0.0\lib\netstandard2.0\Microsoft.AspNetCore.Mvc.Core.dll</HintPath>
  </Reference>
</ItemGroup>

Удаление этого и обращение через nuget решили проблему, похоже, проблема в Visual Studio 2017.

person Dave Glassborow    schedule 29.03.2018
comment
В моем случае это отсутствовало: ‹PackageReference Include = Microsoft.AspNetCore.All Version = 2.0.3 /› вообще. Я добавил его обратно, и это сработало. Спасибо за подсказку, где искать. - person Eric; 12.07.2018
comment
У меня было несколько таких ссылок - кажется, они были добавлены автоматически как часть шаблона проекта ?! Проблема была только в восстановлении / построении TeamCity. Удаление этих ссылок и установка их через NuGet исправили это для меня. - person Tom; 01.11.2018
comment
Я просто добавил нужный мне пакет, который для меня был ‹PackageReference Include = Microsoft.AspNetCore.StaticFiles Version = 2.2.0 /› - person Coops; 19.02.2021

Итак, я предполагаю, что ссылался на зависимости, но не установил их для проекта.

Все, что мне нужно было сделать, это запустить dotnet restore.

https://docs.microsoft.com/en-us/dotnet/articles/core/tools/dotnet-restore

Как указано в ссылке выше, это «Восстанавливает зависимости и инструменты проекта».

person Chris Nevill    schedule 15.12.2016
comment
Я запускаю .net core 2, где здание должно восстанавливаться - я также выполнил восстановление пакета nuget - и я все еще получаю эту и многие другие ошибки, связанные с идентификацией - person niico; 13.11.2017
comment
Я получаю сообщение «Все пакеты уже установлены, и восстанавливать нечего». - person JsonStatham; 07.08.2018

Моя просто заключалась в том, что я не упоминал Microsoft.AspNetCore.App в файле .csproj.

Я добавил ссылку, и она сработала:

MyTestProject.csproj

<Project Sdk="Microsoft.NET.Sdk">
  ...
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>
  ...
</Project>
person user875234    schedule 20.03.2019
comment
Это устранило мою проблему. Я создал проект с dotnet new web, возможно, следовало использовать dotnet new webapp, чтобы автоматически добавить это в .csproj? - person suspicious_williams; 25.06.2019
comment
когда я дважды щелкаю файл .csproj, кажется, что открывается весь проект - как мне отредактировать файл .csproj? вы хотите сказать, откройте файл проекта в текстовом редакторе? - person user1709076; 26.09.2019
comment
да. Если вы находитесь в визуальной студии, вы можете щелкнуть проект правой кнопкой мыши (в проводнике решений) и выбрать редактировать проект или выгрузить проект. Если вы не в Visual Studio, откройте его с помощью VS Code или Notepad ++, и вы можете редактировать его, как любой другой текстовый файл. - person user875234; 27.09.2019
comment
Исправлена ​​проблема - person Sagar Khatri; 22.10.2020

Я тоже столкнулся с этой проблемой, и в моем случае были установлены правильные пакеты, и все мои *.csproj выглядели правильно, но один из проектов в моем решении по-прежнему дал мне эту ошибку.

Обычный dotnet restore мне не помог. Мне пришлось принудительно переоценить все зависимости следующим образом:

dotnet restore --force-evaluate

Из руководства по dotnet:

Принудительное восстановление для повторной оценки всех зависимостей, даже если файл блокировки уже существует.

Через пару секунд мой компилятор перестал выдавать эту ошибку.

person D.Nielsen    schedule 16.11.2019

Изменение

<ItemGroup>
  <Reference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore">
    <HintPath>..\..\..\..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.identity.entityframeworkcore\2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Identity.EntityFrameworkCore.dll</HintPath>
  </Reference>
</ItemGroup>

To

<ItemGroup>
  <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="2.2.0" />
</ItemGroup>

Решил проблему, как ответил @ dave-glassborow

person Khongor Bayarsaikhan    schedule 14.03.2019

Моя проблема заключалась в том, что проект в решении не создавался должным образом, поэтому на него не могли ссылаться другие проекты в решении.

Решением было обновить Visual Studio (я обновился с версии 15.5.6 до версии 15.9.1). Вот ссылка на страницу Microsoft VS Downloads.

person Eric    schedule 16.11.2018

Просто добавьте пакет Nuget Microsoft.AspNetCore.WebUtilities

person ukod    schedule 28.05.2019
comment
Затем я получаю эту ошибку 'тип или пространство имен Mvc не существует в пространстве имен AspNetCore' - person niico; 12.05.2020

Я обнаружил эту проблему при обновлении библиотек с .NET Standard 2.0 до 2.1 или .exe с .NET Core 2.2 до 3.1.

Лучше всего просто переделать все, что NuGet включает в проект, с нуля. Откройте файл .csproj в текстовом редакторе и найдите раздел

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
    ...
  </ItemGroup>

и удалите все, вернувшись к

  <ItemGroup>
  </ItemGroup>

затем повторно откройте решение и переустановите все и только необходимые пакеты NuGet.

Это решает проблему, а также может помочь избавиться от остатков неиспользуемого пакета!

person MikeBeaton    schedule 17.12.2019

Добавление пакета NuGet Microsoft.AspNetCore.Mvc.ViewFeatures исправило это для меня

person niico    schedule 12.05.2020

У меня была эта ошибка при обновлении проекта .NET Core v2.2 до v3.1. В частности, проект модульного тестирования выдавал ошибку, в которой напрямую не использовался пакет AspNetCore.

Решение описано здесь, и заключается в изменении файла проекта для добавления тега <FrameworkReference>:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <FrameworkReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>

</Project>
person Nick    schedule 15.10.2020

Я только что столкнулся с этим с ядром dotnet 5.0. Мой csproj выглядел так:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>

</Project>

Но нужно было выглядеть так (обратите внимание на атрибут sdk элемента проекта):

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>

</Project>
person djeikyb    schedule 21.05.2021