Azure Pipelines中DotNetCoreCLI找不到文件的问题求助
Azure Pipelines中DotNetCoreCLI找不到文件的排查与解决
问题详情
我正跟着YouTube教程开发第一个项目,教程使用Visual Studio,我用VS Code。目前在Azure Pipelines中遇到DotNetCoreCLI找不到文件的错误,尝试过MS Build、输入URL等方法均无法解决。
我的Pipeline配置代码如下:
trigger: - master pool: MyComputerAgent variables: solution: '**/*.sln' buildPlatform: 'Any CPU' buildConfiguration: 'Release' steps: - task: NuGetToolInstaller@1 - task: NuGetCommand@2 inputs: restoreSolution: '$(solution)' - task: UseDotNet@2 inputs: packageType: 'sdk' version: '7.0.400' # Specify the .NET 7 SDK version - task: DotNetCoreCLI@2 displayName: Build inputs: command: build projects: '**/*.csproj' arguments: '--configuration $(buildConfiguration)'
仓库结构:
排查与解决方向
- 精确指定项目路径:
**/*.csproj是全局递归查找,但如果项目有特定目录结构,比如截图中项目在子文件夹,可尝试更精准的路径,例如src/**/*.csproj或直接写具体项目路径[项目文件夹]/[项目名].csproj,避免匹配到无关的csproj文件或漏找目标文件。 - 调整任务执行顺序:当前先执行NuGet还原再安装.NET SDK,可能导致还原时依赖的SDK版本未就绪。将
UseDotNet@2任务移到最顶部,确保SDK先安装完成,再进行NuGet还原和构建操作。 - 验证代理机器的代码结构:你的构建代理是
MyComputerAgent,需确认代理机器拉取代码后的文件结构与仓库完全一致,检查是否存在文件缺失、路径大小写不匹配(非Windows代理需注意)等问题。 - 改用解决方案文件构建:既然已定义
solution变量,可直接基于sln文件构建,修改DotNetCoreCLI任务的projects参数为$(solution),示例:- task: DotNetCoreCLI@2 displayName: Build inputs: command: build projects: '$(solution)' arguments: '--configuration $(buildConfiguration)' - 合并还原与构建步骤:移除单独的NuGetCommand任务,在DotNetCoreCLI的build命令中添加
--restore参数,一次性完成还原和构建,避免步骤间的依赖问题:- task: DotNetCoreCLI@2 displayName: Restore and Build inputs: command: build projects: '**/*.csproj' arguments: '--configuration $(buildConfiguration) --restore'
内容的提问来源于stack exchange,提问作者Himani Gajjar
相关产品推荐
相关产品推荐

