将Windows C#程序移植到Ubuntu:如何添加Microsoft.Extensions命名空间?
解决Ubuntu下.NET项目中Microsoft.Extensions命名空间缺失问题
问题本质很简单:Microsoft.Extensions.Hosting、Microsoft.Extensions.Logging这些命名空间对应的是第三方NuGet包,并非.NET核心SDK自带的内容,不管是Windows还是Ubuntu环境,都需要手动安装依赖包才能使用,和操作系统没有关系。
以下是两种在VSCode中解决的方法:
方法一:使用.NET CLI命令(推荐,适合Ubuntu终端操作)
- 打开终端,切换到你的项目根目录(包含
.csproj文件的文件夹) - 依次执行以下命令安装所需包:
dotnet add package Microsoft.Extensions.Hosting dotnet add package Microsoft.Extensions.Logging - 命令执行完成后,.NET会自动恢复依赖,回到VSCode查看代码,报错即可消失。
方法二:直接编辑.csproj文件
- 在VSCode中打开项目的
.csproj文件 - 在
<ItemGroup>节点中添加以下包引用(版本号可根据你使用的.NET版本调整,比如用.NET 6就选6.x的稳定版):<PackageReference Include="Microsoft.Extensions.Hosting" Version="7.0.1" /> <PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" /> - 保存文件后,VSCode会自动触发依赖恢复,等待完成即可。
补充说明:这些Microsoft.Extensions系列包都是完全跨平台的,Ubuntu下的.NET环境对其支持和Windows完全一致,不存在平台限制问题。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

