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

创建.NET Standard 2.0 NuGet包时如何排除指定依赖项

如何排除特定PackageReference作为NuGet依赖项

当然可以实现!针对那些仅提供.targets构建文件的NuGet包,你只需要在项目文件(.csproj)中给对应的PackageReference添加特定的MSBuild元数据,就能阻止它被包含到你的NuGet包依赖列表里。

具体做法

找到那个只含.targets的PackageReference节点,添加PrivateAssets="All"属性,示例如下:

<PackageReference Include="你的目标包名称" Version="对应的版本号">
  <PrivateAssets>All</PrivateAssets>
</PackageReference>

原理说明

  • PrivateAssets="All" 会告诉MSBuild:这个包的所有资产(包括构建目标、依赖项等)仅用于当前项目的构建过程,不会被传递到引用你项目的其他项目,也不会被包含在你生成的NuGet包的依赖声明中。
  • 这样设置后,这个包依然会在你的项目构建时正常生效(比如它的.targets文件会被执行),但最终用户安装你的NuGet包时,不会自动下载这个依赖包。

额外验证

设置完成后,你可以:

  • 生成NuGet包后,解压.nupkg文件,查看里面的.nuspec文件,确认目标包没有出现在<dependencies>节点中。
  • 本地构建项目,确保构建流程不受影响,同时依赖列表中不再包含该包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:16:45