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
相关产品推荐
相关产品推荐

