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

Azure DevOps打包.NET项目时引用项目DLL未纳入NuGet包的问题

Azure DevOps NuGet打包未包含引用项目DLL问题

问题背景

我在使用Azure DevOps构建并打包带有多个项目引用的.NET csproj时遇到问题:MSBuild任务能成功编译主项目,所有引用项目的文件都输出到了bin\Release目录,但后续的NuGet打包任务并未将这些引用项目的文件纳入最终生成的NuGet包。

正常表现

MSBuild命令可正确编译解决方案,bin\Release目录中包含所有项目引用所需的DLL文件。

异常表现

执行带有Pack目标的NuGetCommand@2任务时,生成的NuGet包仅包含主项目的输出文件,所有必要的引用项目文件都未被纳入。

已尝试的解决操作

  • 在Pack目标中设置IncludeReferencedProjects=true,按理论该配置应将引用项目纳入NuGet包;
  • 检查csproj文件,确认所有项目引用及路径配置均正确;
  • 尝试Azure DevOps管道中MSBuild任务的多种配置,包括使用内联PowerShell脚本和不同的YAML任务定义。

需求

需要让NuGetCommand@2任务的Pack目标,像构建后bin\Release目录那样,将所有引用项目的DLL文件都纳入最终的NuGet包中。

相关管道YAML代码

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(MainCsprojFile)'
  displayName: 'Restore NuGet Packages'

- task: MSBuild@1
  inputs:
    solution: '$(MainCsprojFile)'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
  displayName: 'Build with MSBuild'

- task: NuGetCommand@2
  displayName: 'Pack NuGet package'
  inputs:
    command: 'pack'
    packagesToPack: '$(MainCsprojFile)'
    versioningScheme: 'off'
    versionEnvVar: 'PackageVersion'
    includeReferencedProjects: true
    outputDir: '$(Build.ArtifactStagingDirectory)'

更新

查看管道输出截图(原截图内容为英文,翻译说明:截图显示NuGet Pack任务执行日志中仅处理了主项目,未对引用项目进行打包相关操作)


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 13:45:12