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

如何阻止Visual Studio发布时复制Newtonsoft.Json包引用

解决Newtonsoft.Json发布冲突问题

方案1:通过MSBuild目标移除发布文件

在你的项目.csproj文件中添加以下MSBuild目标,直接在发布流程中剔除冲突的DLL:

<Target Name="ExcludeNewtonsoftFromPublish" AfterTargets="ComputeFilesToPublish">
  <ItemGroup>
    <ResolvedFileToPublish Remove="Newtonsoft.Json.dll" />
  </ItemGroup>
</Target>

这个目标会在MSBuild完成发布文件收集后,主动移除Newtonsoft.Json.dll,绕过之前无效的属性设置逻辑。

方案2:在发布配置文件中设置排除规则

如果使用Visual Studio的发布配置文件(.pubxml),直接在对应配置里添加排除项:

  1. 打开项目下的Properties/PublishProfiles目录,找到你正在使用的发布配置文件(比如FolderProfile.pubxml)
  2. 在文件中插入以下内容:
<ItemGroup>
  <ExcludeFromPublish Include="Newtonsoft.Json.dll" />
</ItemGroup>

这种方式仅针对当前发布配置生效,不会影响其他发布场景。

方案3:调整NuGet引用的依赖传递属性

修改.csproj中的PackageReference,设置PrivateAssets="runtime",阻止NuGet将该包的运行时DLL复制到发布目录:

<PackageReference Include="Newtonsoft.Json" Version="x.x.x">
  <PrivateAssets>runtime</PrivateAssets>
</PackageReference>

注意将x.x.x替换为你实际使用的Newtonsoft.Json版本号。


内容的提问来源于stack exchange,提问作者A. Tropics

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 11:22:44