You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 8类库项目如何引用Microsoft.NET.Sdk.Web中的类?

在非Web类库中使用SelectListItem的解决办法

你不需要把类库项目改成Microsoft.NET.Sdk.Web,只需要给类库添加对应的NuGet包引用就能解决问题:

  1. 保持项目文件开头为Microsoft.NET.Sdk(标准类库默认的SDK)
  2. 在项目文件的<ItemGroup>节点中添加Microsoft.AspNetCore.Mvc.ViewFeatures包的引用,这是.NET 8中包含SelectListItem的官方包

修改后的项目文件示例:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Mvc.ViewFeatures" Version="8.0.0" />
  </ItemGroup>
</Project>

这样你的类库依然是标准类库项目,不会被识别为Web应用要求提供main()方法,同时可以正常引用Microsoft.AspNetCore.Mvc.Rendering命名空间下的SelectListItem。

补充:如果不想引入额外NuGet包,也可以手动定义一个和SelectListItem结构一致的类,但这种方式不推荐——后续和Web项目交互时会出现类型不匹配的问题,维护成本更高。

内容的提问来源于stack exchange,提问作者Robert Paulsen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 13:05:53