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

Posted

技术标签:

【中文标题】错误 CS0234:命名空间“Microsoft”中不存在类型或命名空间名称“AspNetCore”(您是不是缺少程序集引用?)【英文标题】:Error CS0234: The type or namespace name 'AspNetCore' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)错误 CS0234:命名空间“Microsoft”中不存在类型或命名空间名称“AspNetCore”(您是否缺少程序集引用?) 【发布时间】:2017-05-01 09:19:17 【问题描述】:

我正在尝试将以下模板项目升级到 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:名称空间“Microsoft”中不存在类型或命名空间名称“AspNetCore”(您是否缺少程序集引用?)

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

【问题讨论】:

【参考方案1】:

只需添加 Microsoft.AspNetCore.Mvc nuget 包即可为我修复它。

【讨论】:

【参考方案2】:

我刚刚使用 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>

【讨论】:

【参考方案3】:

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

解决方案描述为here,包括修改项目文件以添加&lt;FrameworkReference&gt;标签:

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

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

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

</Project>

【讨论】:

【参考方案4】:

添加 NuGet 包 Microsoft.AspNetCore.Mvc.ViewFeatures 为我修复了它

【讨论】:

【参考方案5】:

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

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

dotnet restore --force-evaluate

来自 dotnet 手册:

即使锁定文件已经存在,也会强制还原以重新评估所有依赖项。

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

【讨论】:

【参考方案6】:

我在将库从 .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 包。

这解决了问题,也可以帮助清理任何未使用的包垃圾!

【讨论】:

【参考方案7】:

只需添加 Microsoft.AspNetCore.WebUtilities nuget 包

【讨论】:

然后我收到此错误“命名空间 AspNetCore 中不存在类型或命名空间 Mvc”【参考方案8】:

我只是没有在 .csproj 文件中引用 Microsoft.AspNetCore.App

我添加了参考并且它起作用了:

MyTestProject.csproj

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

【讨论】:

这解决了我的问题。我使用dotnet new web 创建了项目,也许应该使用dotnet new webapp 将其自动添加到.csproj? 当我双击 .csproj 文件时,它似乎打开了整个项目 - 我将如何编辑 .csproj 文件?你的意思是在文本编辑中打开项目文件? 是的。如果您在视觉工作室中,您可以右键单击项目(在解决方案资源管理器中)并选择编辑项目或卸载项目。如果您不在 Visual Studio 中,请使用 VS Code 或 Notepad++ 打开它,您可以像编辑任何其他文本文件一样对其进行编辑。 修复了问题【参考方案9】:

变化

<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 回答的问题

【讨论】:

【参考方案10】:

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

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

【讨论】:

【参考方案11】:

我们刚刚遇到了这个问题,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 中的一个问题。

【讨论】:

在我的中,这是缺少的: 完全。我把它加回去了,它起作用了。感谢您为我提供有关在哪里查看的线索。 我有一些这样的参考资料——似乎它们是作为项目模板的一部分自动添加的?!在 TeamCity 上恢复/构建时只是一个问题。删除这些引用并通过 NuGet 安装它们为我修复了它。 我刚刚添加了我需要的包,对我来说是 【参考方案12】:

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

我需要做的就是跑 点网恢复

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

如以上链接所述 "恢复项目的依赖和工具。"

【讨论】:

我正在运行 .net core 2,其中应恢复构建 - 我还完成了 nuget 包恢复 - 我仍然收到此错误以及许多其他与身份相关的错误 我得到“所有软件包都已安装,没有什么可恢复的。”

以上是关于错误 CS0234:命名空间“Microsoft”中不存在类型或命名空间名称“AspNetCore”(您是不是缺少程序集引用?)的主要内容,如果未能解决你的问题,请参考以下文章

错误 CS0234:命名空间“UnityEditor”中不存在类型或命名空间名称“iOS”。您是不是缺少程序集参考?

错误 CS0234 命名空间“Xamarin.Forms.Platform”中不存在类型或命名空间名称“Android”

E:\双重聚类\新项目\6\6\Form1.Designer.cs(116,28): 错误 CS0234: 命名空间“DotSpatial”中不存在类型或

CS0234: 命名空间“System.Web.Mvc”中不存在类型或命名空间名称“Ajax”(是否缺少程序集引用?)

命名空间“Microsoft”中不存在类型或命名空间名称“Bot”?

ERROR CS0234名称空间名称“编码”不存在