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

使用dotnet pack生成的NuGet包仅含依赖项却缺失自身类库代码的问题排查

解决NuGet包缺少类库代码的问题

这个问题我碰到过好多次——当你自定义.nuspec文件时,NuGet不会自动帮你把类库的编译产物(dll、pdb这些核心代码文件)打包进去,得手动在<files>节点里明明白白指定才行。

步骤1:修改.nuspec文件,添加类库程序集

在你的Sima.Logging.nuspec的<files>节点中,补充指向编译后程序集的条目,完整内容如下:

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
  <metadata>
    <!-- 原有metadata内容保持不变 -->
    <id>Sima.Logging</id>
    <version>1.0.0</version>
    <contentFiles>
      <files include="**/nlog.config" buildAction="Content" copyToOutput="true" flatten="true" />
    </contentFiles>
    <dependencies>
      <group>
        <dependency id="NLog" version="4.7.12" exclude="Build,Analyzers" />
        <dependency id="NLog.Web.AspNetCore" version="4.9.3" exclude="Build,Analyzers" />
      </group>
    </dependencies>
  </metadata>
  <files>
    <!-- 保留原有contentFiles的条目 -->
    <file src="contentFiles\**" target="contentFiles" />
    <!-- 新增:添加类库的核心编译文件 -->
    <file src="bin\$(Configuration)\netcoreapp3.1\Sima.Logging.dll" target="lib\netcoreapp3.1" />
    <file src="bin\$(Configuration)\netcoreapp3.1\Sima.Logging.pdb" target="lib\netcoreapp3.1" />
  </files>
</package>

关键细节说明:

  • src路径:bin\$(Configuration)\netcoreapp3.1\是类库编译产物的默认输出路径,$(Configuration)是占位符,打包时会自动替换成你指定的构建配置(比如Release或Debug)。
  • target路径:lib\netcoreapp3.1是NuGet约定的类库程序集存放位置,必须和你的项目目标框架(netcoreapp3.1)完全匹配,这样安装包的项目才能正确引用到你的类库代码。

步骤2:用指定配置重新打包

打包时建议明确指定构建配置(避免默认用Debug版本),执行命令:

dotnet pack -c Release

这样$(Configuration)会被替换成Release,确保打包的是发布版本的程序集,更适合生产环境使用。

额外检查点

  • 打包前先确认类库已正确编译:可以先执行dotnet build -c Release,检查bin\Release\netcoreapp3.1目录下是否存在Sima.Logging.dll和Sima.Logging.pdb文件。
  • 如果你的项目生成了XML文档注释,也可以在<files>节点中添加对应的条目,方便使用者查看API注释:
    <file src="bin\$(Configuration)\netcoreapp3.1\Sima.Logging.xml" target="lib\netcoreapp3.1" />
    

这样修改后,重新打包生成的nupkg就会同时包含你的类库代码、nlog.config配置文件以及依赖项了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.01 03:13:12