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

如何解决Azure DevOps构建步骤中的“Copy任务不支持复制目录”错误?

解决Azure DevOps构建中MSB3025错误的思路

结合你描述的场景——仅更新了某个NuGet包版本就触发了构建失败,这个MSB3025错误的根源其实很明确:你更新的NuGet包存在打包错误,它把FONT-LICENSE这个目录错误地标记成了文件,导致发布阶段的Copy任务试图去复制一个目录,而该任务本身不支持复制目录操作,因此抛出了错误。

下面给你几个可行的解决方向:

  • 确认并反馈NuGet包问题
    先手动检查这个NuGet包的内容:找到构建代理上的包路径C:\windows\ServiceProfiles\NetworkService.nuget\packages\package\version\staticwebassets\css\open-iconic\,看看FONT-LICENSE到底是目录还是文件。如果是目录,那肯定是包的维护者在打包时误将目录当成文件包含进了包中。你可以联系包的作者提交这个问题,让他们修复打包逻辑。

  • 临时绕过的修复方案(适用于无法等待包更新的情况)

    1. 在Azure DevOps中添加前置脚本任务
      在你的Publish构建任务之前,新增一个PowerShell脚本任务,手动删除这个错误的目录:
      Remove-Item -Path "C:\windows\ServiceProfiles\NetworkService.nuget\packages\你的包名\你的版本号\staticwebassets\css\open-iconic\FONT-LICENSE" -Recurse -Force
      
      记得把脚本里的占位符替换成你实际使用的包名和版本号。
    2. 在项目文件中添加排除规则
      打开你的.csproj文件,添加以下配置,把这个错误的目录从发布内容中排除:
      <ItemGroup>
        <Content Remove="$(NuGetPackageRoot)/你的包名/你的版本号/staticwebassets/css/open-iconic/FONT-LICENSE" />
        <None Include="$(NuGetPackageRoot)/你的包名/你的版本号/staticwebassets/css/open-iconic/FONT-LICENSE" />
      </ItemGroup>
      
  • 快速排查构建任务是否有变更
    虽然你提到仅更新了NuGet包,但还是可以快速确认下Azure DevOps的Publish任务配置有没有意外改动——比如是否新增了自定义的文件复制规则。不过根据报错信息来看,这个可能性很低,核心问题还是出在那个更新的NuGet包上。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 06:02:45