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

ASP.NET Core自包含部署缺失System.Net.Http.Formatting.dll求助

解决.NET Core自包含部署缺少System.Net.Http.Formatting.dll的问题

我之前也碰到过类似的坑,Microsoft.AspNet.WebApi.Client这个包的结构确实有点特殊,导致自包含发布时容易漏掉它的核心DLL。下面是几个亲测有效的解决步骤:

  • 先确认基础配置没出错
    首先检查你的项目文件(.csproj)里是否正确引用了该包,确保没有额外的排除或条件限制:

    <PackageReference Include="Microsoft.AspNet.WebApi.Client" Version="5.2.6" />
    

    另外你提到winx64目录体积小很多,大概率是之前的发布没有真正启用自包含模式。正确的发布命令应该是:

    dotnet publish -c Release -r win-x64 --self-contained true
    

    也可以直接在项目文件里提前配置自包含参数,避免每次命令行输入:

    <PropertyGroup>
      <SelfContained>true</SelfContained>
      <RuntimeIdentifier>win-x64</RuntimeIdentifier>
      <PublishSingleFile>false</PublishSingleFile> <!-- 不需要单文件发布的话保留这个配置 -->
    </PropertyGroup>
    
  • 强制复制缺失的DLL到发布目录
    这个包的System.Net.Http.Formatting.dll放在lib/netstandard2.0子目录下,.NET的发布系统有时候不会自动识别并包含它。我们可以在项目文件里添加手动复制规则,强制把这个DLL带到发布目录:

    <ItemGroup>
      <Content Include="$(NuGetPackageRoot)microsoft.aspnet.webapi.client\5.2.6\lib\netstandard2.0\System.Net.Http.Formatting.dll">
        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
      </Content>
    </ItemGroup>
    

    $(NuGetPackageRoot)是NuGet包的默认安装路径(一般是C:\Users\[你的用户名]\.nuget\packages),如果你的NuGet路径自定义过,可以替换成对应的绝对路径。

  • 清理缓存后重新发布
    有时候项目的构建缓存会导致依赖没有被正确更新,执行以下命令彻底清理后再发布,能避免很多奇怪的问题:

    dotnet clean
    dotnet restore
    dotnet publish -c Release -r win-x64 --self-contained true
    
  • 备选方案:升级包或替换依赖
    如果上面的方法都不生效,可以尝试把Microsoft.AspNet.WebApi.Client升级到最新稳定版(比如5.2.9),新版本对.NET Core的兼容性更好,可能已经修复了自包含发布的依赖问题。另外,也可以考虑改用官方的System.Net.Http.Json来处理HTTP请求序列化,避免依赖这个较老的包。

至于你尝试的<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>,这个属性主要是用来禁用ASP.NET Core的目标依赖清单过滤,一般是解决SDK相关依赖缺失的问题,对第三方NuGet包的特殊结构依赖无效,所以没起作用也正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:53:40