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

如何使用dotnet CLI构建.NET Framework 4.8应用并解决CS0246报错

核心原因
  • dotnet CLI 原生仅支持编译SDK风格的.NET项目,你当前的.NET Framework 4.8项目大概率是传统非SDK格式的csproj,搭配packages.config管理NuGet依赖,dotnet CLI无法解析这类项目的程序集引用、NuGet依赖路径
  • 你之前安装的3.1、5.0都是.NET Core/.NET 5+ SDK,没有自带.NET Framework 4.8的编译引用程序集,且重新安装.NET Framework 4.8运行时无效,需要安装对应开发人员包
解决方案

方案一:使用MSBuild编译(无需修改项目,成本最低)

Visual Studio编译使用的是自带的MSBuild工具链,你可以直接调用MSBuild完成命令行编译:

  1. 找到对应VS版本的MSBuild路径,默认路径参考:C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe,可以将该路径加入系统环境变量方便调用
  2. 执行依赖还原:
    • 若项目用packages.config管理依赖,先运行nuget restore 你的解决方案.sln
    • 若项目已经是SDK格式,运行msbuild /t:Restore 你的解决方案.sln
  3. 执行编译命令:msbuild 你的解决方案.sln /p:Configuration=Release /p:Platform="Any CPU"

方案二:改造为SDK风格项目(适合长期维护的项目)

将传统csproj改造为SDK格式后即可直接用dotnet CLI编译:

  1. 替换原有csproj的全部内容为如下基础结构,根据项目类型调整属性:
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net48</TargetFramework>
    <!-- 可执行程序填Exe,类库填Library -->
    <OutputType>Exe</OutputType>
  </PropertyGroup>
  <!-- 在这里添加所有NuGet依赖,示例: -->
  <ItemGroup>
    <PackageReference Include="log4net" Version="2.0.15" />
  </ItemGroup>
</Project>
  1. 删除项目根目录的packages.config文件
  2. 执行dotnet build即可正常编译

方案三:安装.NET Framework 4.8开发人员包

如果你已经是SDK格式的.NET Framework 4.8项目,只需要安装开发人员包即可让dotnet CLI识别框架:

  • 下载安装「Microsoft .NET Framework 4.8 Developer Pack」,安装完成后重新执行dotnet build即可解决引用报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:45:00