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

如何通过CLI在传统非SDK格式项目中引用NuGet包?

传统非SDK项目引用dotnet pack生成的NuGet包的正确方法

先确保NuGet能找到你的本地包

先用NuGet命令行添加本地包源(如果还没加的话):

nuget sources add -name "LocalNuGet" -source "你存放dotnet pack生成的.nupkg文件的目录路径"

如果已经添加过本地源,可跳过这一步。


方法一:通过packages.config配置(适用于多数传统项目)

  1. 找到项目根目录下的packages.config文件,没有的话直接新建一个。
  2. 在文件里添加你的包引用,格式如下:
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <!-- 其他已有包引用 -->
  <package id="你的NuGet包ID" version="包的版本号" targetFramework="项目目标框架(如net472)" />
</packages>
  1. 保存文件后,在项目根目录运行NuGet还原命令:
nuget restore

方法二:直接修改.csproj文件

如果你的项目不使用packages.config,直接编辑.csproj文件:

  1. 在文件中找到或新建<ItemGroup>节点,添加程序集引用:
<ItemGroup>
  <!-- 其他已有引用 -->
  <Reference Include="你的包程序集名称, Version=包版本号, Culture=neutral, PublicKeyToken=你的包公钥令牌(无则留空)">
    <HintPath>..\packages\你的包ID.版本号\lib\目标框架(如net472)\你的包程序集名称.dll</HintPath>
    <Private>True</Private>
  </Reference>
</ItemGroup>
  1. 注意HintPath要对应NuGet包解压后的实际路径,通常是项目根目录下的packages文件夹内的对应位置。
  2. 同样先运行nuget restore确保包已被下载到本地。

构建失败的常见排查点

  • 目标框架不匹配:确认你的NuGet包的目标框架和项目的目标框架兼容,比如项目用net462,包不能是net6.0这种不兼容的版本。
  • 路径错误:检查HintPath的路径是否正确,拼写错误或目录结构变化都会导致找不到程序集。
  • 依赖缺失:如果你的NuGet包依赖其他包,要确保这些依赖也被正确添加到项目中(同样通过packages.config或csproj引用)。
  • 清理缓存:运行msbuild /t:Clean清理旧构建文件,再执行msbuild /t:Build重新构建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 08:40:11