Ошибка CS0234: имя типа или пространства имен "AspNetCore" не существует в темпе имен "Microsoft" (отсутствует ссылка на сборку?)
Я пытаюсь обновить следующий шаблон проекта до ASP.NET Core 1.1: https://github.com/wilanbigay/aspnet-core-aurelia-typescript-starter
После запуска переноса dotnet файл project.json был удален в пользу нового файла csproj.
Используя код Visual Studio и расширение 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 в разделе ссылок. Как я могу решить это?
16 ответов
Так что я думаю, что я ссылался на зависимости, но не установил их для проекта.
Все, что мне нужно было сделать, это запустить dotnet restore
https://docs.microsoft.com/en-us/dotnet/articles/core/tools/dotnet-restore
Как указано в ссылке выше, это "Восстанавливает зависимости и инструменты проекта".
У нас только что была эта проблема, когда Visual Studio услужливо добавила местную ссылку, а не через 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.
Мой был просто, что я не ссылался Microsoft.AspNetCore.App
в файле.csproj.
Я добавил ссылку, и это сработало:
MyTestProject.csproj
<Project Sdk="Microsoft.NET.Sdk">
...
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
...
</Project>
Я тоже столкнулся с этой проблемой, и в моем случае были установлены соответствующие пакеты и все мои *.csproj
выглядело правильно, но один из проектов в моем решении все еще дал мне эту ошибку.
Равнина dotnet restore
не помогло мне. Мне пришлось принудительно переоценить все зависимости следующим образом:
dotnet restore --force-evaluate
Из руководства по dotnet:
Принудительное восстановление для повторной оценки всех зависимостей, даже если файл блокировки уже существует.
Через пару секунд мой компилятор перестал выдавать эту ошибку.
Я только что столкнулся с этим с ядром 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>
У меня была эта ошибка при обновлении проекта.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>
Просто добавив
Microsoft.AspNetCore.Mvc
Пакет nuget исправил это для меня.
Изменения
<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>
к
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="2.2.0" />
</ItemGroup>
Решил вопрос как ответил @dave-glassborow
Что в итоге сработало для меня, так это следующие шаги:
- Выгрузите проект и отредактируйте файл .csproj, как рекомендовано пользователем 875234 в другом ответе.
- Перезагрузите и перестройте проект (для меня это привело к различным ошибкам)
- Выгрузить проект и отменить изменения в файле .csproj
- Перезагрузить и перестроить проект
По пути я тоже бегал
dotnet restore
пару раз, так что, возможно, это тоже как-то помогло.
Надеюсь, это поможет кому-то с похожей проблемой для меня!
Моя проблема была довольно странной. Я компилировал это приложение миллион раз и в последнее время не добавлял и не удалял какие-либо пакеты. Внезапно я начал получать эту ошибку.
Я заметил в ошибке, что она также ссылается на имя файла непосредственно перед ней. Я зашел в этот файл (класс/модель) и обнаружил серый цвет.
Ни одно из других решений, упомянутых выше, не помогло. Некоторые даже вызвали больше проблем. Удачи!
Для меня, использующего net6, проблема заключалась в том, что Rider сгенерировал эту ссылку в моей клиентской библиотеке csproj:
<ItemGroup>
<Reference Include="Microsoft.AspNetCore.Mvc.Core">
<HintPath>..\..\..\..\..\..\..\Program Files\dotnet\shared\Microsoft.AspNetCore.App\6.0.18\Microsoft.AspNetCore.Mvc.Core.dll</HintPath>
</Reference>
</ItemGroup>
Когда наш конвейер сборки работал, он не смог его найти, поэтому я заменил его на:
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App"/>
</ItemGroup>
Просто добавьте пакет Nuget для Microsoft.AspNetCore.WebUtilities
Добавьте эти ссылки в свою библиотеку, если вы используете библиотеку ASP NET Core с контроллерами/MVW:
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="7.0.9" />
</ItemGroup>
Я обнаружил эту проблему при обновлении библиотек с.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.
Это решает проблему, а также может помочь избавиться от остатков неиспользуемого пакета!
Добавление пакета NuGet Microsoft.AspNetCore.Mvc.ViewFeatures исправило это для меня
Моя проблема заключалась в том, что проект в решении не создавался должным образом, поэтому на него не могли ссылаться другие проекты в решении.
Решением было обновить Visual Studio (я обновил версию 15.5.6 до версии 15.9.1). Вот ссылка на страницу загрузки VS от Microsoft.