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

.NET Core:打包含项目引用的NuGet包添加时出现找不到依赖包错误

解决NuGet包依赖找不到同解决方案项目的问题

看起来你遇到的是个典型场景:当你打包一个依赖同解决方案内其他项目的项目时,NuGet默认会把这些项目引用标记为外部包依赖,但这两个依赖项目并没有被打包成NuGet包并放到可访问的源里,所以在其他解决方案添加包时就会报错找不到它们。

下面给你两种实用的解决思路,你可以根据自己的需求选择:

思路一:将所有依赖项目也打包成独立NuGet包(推荐,适合复用)

如果以后这两个依赖项目也需要被其他项目单独引用,这种方式最合理:

  • 第一步:给每个依赖项目配置NuGet打包信息
    打开每个依赖项目的.csproj文件,添加必要的打包属性(放在<Project>下的<PropertyGroup>块里):
    <PropertyGroup>
      <PackageId>Your.Dependency.Project1</PackageId> <!-- 设定唯一的包名 -->
      <PackageVersion>1.0.0</PackageVersion> <!-- 版本号,后续更新记得递增 -->
      <Authors>Your Name</Authors>
    </PropertyGroup>
    
  • 第二步:打包整个解决方案
    别单独打包主项目,直接在解决方案根目录执行命令,一次性打包所有关联项目:
    dotnet pack YourSolutionName.sln -c Release
    
    执行后,每个项目的bin/Release目录下都会生成对应的.nupkg文件。
  • 第三步:创建本地NuGet源并添加包
    新建一个本地文件夹(比如C:\LocalNuGetRepo),把主项目和两个依赖项目的.nupkg都复制到这里。
    然后在目标解决方案中添加包时指定这个本地源:
    dotnet add package Your.Main.PackageName --source C:\LocalNuGetRepo
    
    NuGet会自动从这个源里找到所有需要的依赖包。

思路二:将依赖项目合并到主NuGet包中(无需单独打包依赖)

如果这两个依赖项目只服务于当前主项目,不需要单独复用,可以把它们的程序集直接嵌入主包:

  • 修改主项目的.csproj文件,针对每个项目引用添加如下配置:
    <ItemGroup>
      <ProjectReference Include="..\Path\To\DependencyProject1.csproj">
        <PrivateAssets>all</PrivateAssets>
        <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
      </ProjectReference>
      <ProjectReference Include="..\Path\To\DependencyProject2.csproj">
        <PrivateAssets>all</PrivateAssets>
        <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
      </ProjectReference>
    </ItemGroup>
    
    这个配置会告诉NuGet把依赖项目的程序集打包到主包中,而不会将它们标记为外部依赖。
  • 重新打包主项目:
    dotnet pack YourMainProject.csproj -c Release
    
    现在生成的主包会包含所有依赖的程序集,在其他解决方案中添加这个包时就不会出现找不到依赖的错误了。

额外排查点

  • 确保你用的是Release配置打包,Debug配置生成的包可能存在依赖解析问题;
  • 如果主项目有手动生成的.nuspec文件,检查里面的<dependencies>节点是否误添加了不存在的包引用;
  • 使用本地源时,确认所有相关的.nupkg文件都在同一个文件夹,并且--source参数的路径输入正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:40:35