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

VS2019解决方案中如何从公共项目继承NUnit等NuGet包引用

实现NUnit包传递引用的操作方案

针对SDK风格项目(.NET Core/.NET 5+、SDK格式的.NET Framework项目)

这种项目格式默认支持NuGet包传递引用,只需要调整NUnit包的私有配置即可:

  • 右键NUnitHelper项目,选择「管理NuGet程序包」
  • 找到已安装的NUnit包,将PrivateAssets属性设置为none即可。如果配置不生效,可以手动编辑项目文件:右键NUnitHelper项目选择「编辑项目文件」,修改NUnit的PackageReference节点为如下格式:
<PackageReference Include="NUnit" Version="你实际使用的NUnit版本号">
  <PrivateAssets>none</PrivateAssets>
</PackageReference>

配置完成后,所有引用了NUnitHelper的项目都会自动继承NUnit包引用,无需单独安装。

针对非SDK风格的.NET Framework项目(使用packages.config管理依赖)

这种旧格式默认不支持传递引用,可选择两种处理方式:

  • 方案1:将所有相关项目迁移为SDK风格格式,是长期最优方案,后续所有NuGet依赖都原生支持传递引用
  • 方案2:手动修改NUnitHelper的项目文件(.csproj),找到NUnit的引用节点,将Private属性设置为False:
<Reference Include="nunit.framework, Version=你实际使用的版本号, Culture=neutral, PublicKeyToken=2638cd05610d4443, processorArchitecture=MSIL">
  <HintPath>..\packages\NUnit.你实际使用的版本号\lib\对应.NET框架版本\nunit.framework.dll</HintPath>
  <Private>False</Private>
</Reference>

配置完成后,其他项目引用NUnitHelper时会自动连带复制NUnit的程序集到输出目录,可正常调用相关功能。

你提到的旧版NuGet的「manage」功能是早期的解决方案级包管理能力,目前已经被传递引用机制替代。如果需要全解决方案统一管控包版本,还可以在解决方案根目录添加Directory.Packages.props文件集中管理所有包版本,所有项目引用包时无需单独指定版本号,能彻底避免依赖版本分散的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 15:18:04