错误 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,包括修改项目文件以添加<FrameworkReference>
标签:
<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 中的一个问题。
【讨论】:
在我的中,这是缺少的:所以我想我是在引用依赖项,但没有为项目安装它们。
我需要做的就是跑 点网恢复
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”(是否缺少程序集引用?)