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

如何针对.NET Standard 2.0创建.NET MVC应用并解决运行报错?

问题原因与解决办法

首先得明确一个关键概念:.NET Standard 2.0 是类库的目标框架,不是用来构建可执行应用的。它本质上是一套API规范,定义了不同.NET平台(比如.NET Core、.NET Framework)都能兼容的API集合,但它本身没有独立的运行时环境,没办法直接运行应用程序。

你用dotnet new mvc生成的ASP.NET Core MVC应用,默认目标框架是netcoreapp2.0是有道理的——因为ASP.NET Core应用需要一个可运行的目标框架(TFM),而netcoreapp系列就是专门为.NET Core可执行应用设计的,自带运行时支持。

当你手动把项目改成netstandard2.0后,虽然构建能通过(因为语法上没问题),但执行dotnet run时,CLI会发现这个项目的目标框架没有运行时,自然就会抛出那个错误。

解决步骤:

  • 修正目标框架:把.csproj里的TargetFramework改回netcoreapp2.0(如果需要更高版本也可以,比如netcoreapp3.1,只要兼容你的依赖)。
  • 确保OutputType设置正确:ASP.NET Core应用的OutputType必须是Exe,不过如果你用的是Microsoft.NET.Sdk.Web SDK,这个属性会自动设置,不需要手动加,但如果你的手动修改删掉了它,记得加回去。

举个正确的.csproj示例:

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

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>

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

</Project>

补充说明:

如果你的需求是让项目引用.NET Standard 2.0的类库,正确的做法是单独创建一个类库项目(用dotnet new classlib -f netstandard2.0),然后让你的MVC应用通过项目引用或者NuGet包的方式使用这个类库,而不是把MVC应用本身改成.NET Standard目标框架。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:59:37