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

.NET Core 3.1如何避免引用dll时自动引入第三方依赖

解决方案

你之前使用的<DisableImplicitFrameworkReferences>配置和你的需求无关,该配置的作用是关闭.NET Core默认隐式引入的框架基础库(如Microsoft.NETCore.App),启用后会缺失基础运行时依赖,所以会抛出netstandard版本相关的错误,请先移除该配置。

实现禁止依赖向上传递的两种方案

方案1:针对单个第三方包单独设置

在原项目的.csproj文件中,找到所有第三方依赖的PackageReference节点,添加PrivateAssets="all"属性,示例如下:

<PackageReference Include="RestSharp" Version="你的版本号" PrivateAssets="all" />
<PackageReference Include="BouncyCastle" Version="你的版本号" PrivateAssets="all" />

该配置的作用是:当前包的编译、运行时资产都不会向上传递给引用了当前项目的上层项目,上层项目必须手动安装对应依赖才能调用相关API。

方案2:全局配置所有依赖默认不传递

如果不想逐个修改包引用,可以在原项目.csproj的PropertyGroup节点中添加全局默认配置,一次性生效于所有第三方包:

<PropertyGroup>
  <TargetFramework>netcoreapp3.1</TargetFramework>
  <!-- 新增这一行 -->
  <DefaultPrivateAssets>all</DefaultPrivateAssets>
</PropertyGroup>

验证效果

修改完成后重新编译原项目,重新打包/更新引用到TestAPP项目中,此时TestAPP直接调用RestSharp、BouncyCastle的相关API会触发编译报错,只有TestAPP手动安装对应版本的依赖后才能正常编译运行,符合你的预期需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 15:21:01