错误 CS0234:类型或命名空间名称 'AspNetCore' 在命名空间 'Microsoft' 中不存在(是否缺少程序集引用?)

Error CS0234: The type or namespace name 'AspNetCore' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)

我正在尝试将以下模板项目升级到 ASP.NET Core 1.1: https://github.com/wilanbigay/aspnet-core-aurelia-typescript-starter

在 运行 dotnet migrate 之后,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 命名空间。我收到错误

Error CS0234: The type or namespace name 'AspNetCore' does not exist in the names pace 'Microsoft' (are you missing an assembly reference?)

我不确定如何才能像以前那样在参考资料部分的 Visual Studio 中检查参考资料。 我该如何解决?

所以我想我是在引用依赖项,但没有为项目安装它们。

我需要做的就是 运行 网络恢复

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

如上文 link 所述 "Restores the dependencies and tools of a project."

我们刚刚遇到这个问题,visual studio 帮助添加了本地引用而不是通过 nuget

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

删除它并通过 nuget 引用解决了这个问题,看起来像是 Visual Studio 2017 年的问题。

我的问题是解决方案中的一个项目没有正确构建,因此无法被解决方案中的其他项目引用。

解决方案是更新Visual Studio(我从15.5.6版本更新到15.9.1版本)。这里是 link 到 Microsoft's VS Downloads page.

改变

<ItemGroup>
  <Reference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore">
    <HintPath>..\..\..\..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.identity.entityframeworkcore.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 文件中引用 Microsoft.AspNetCore.App

我添加了参考并且有效:

MyTestProject.csproj

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

只需添加Microsoft.AspNetCore.WebUtilities nuget包

我也 运行 遇到了这个问题,在我的情况下安装了正确的包并且我的所有 *.csproj 看起来都是正确的,但是我的解决方案中的一个项目仍然给我这个错误.

普通的 dotnet restore 对我没用。 我不得不像这样强制重新评估所有依赖项:

dotnet restore --force-evaluate

来自 dotnet 手册:

Forces restore to reevaluate all dependencies even if a lock file already exists.

几秒钟后,我的编译器不再给我这个错误。

我在将库从 .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 为我修复了它

我在将 .NET Core v2.2 项目升级到 v3.1 时遇到了这个错误。具体来说,一个单元测试项目给出了错误,它没有直接使用 AspNetCore 包。

here 描述了解决方案,包括修改项目文件以添加 <FrameworkReference> 标记:

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

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

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

</Project>

我只是 运行 使用 dotnet core 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>

只需添加 Microsoft.AspNetCore.Mvc nuget 包就可以解决问题。

最终对我有用的是以下步骤:

  1. 卸载项目并以另一个答案中推荐的 user875234 编辑 .csproj 文件
  2. 重新加载并重建项目(这对我来说导致了不同的错误)
  3. 卸载项目并撤消对 .csproj 文件的编辑
  4. 重新加载并重建项目

一路上,我也 运行 dotnet restore 几次,所以这可能也有所帮助。

希望这对遇到与我类似问题的人有所帮助!