从Azure DevOps构建SSIS项目时找不到DEV.dtproj文件的问题求助
问题:Azure DevOps SSISBuild任务找不到DEV.dtproj文件
问题描述
在Azure DevOps中协助构建部署SSIS项目时,SSISBuild任务成功构建了<someproject>.dtproj,但随后尝试寻找不存在的<someproject>DEV.dtproj文件并报错。
YAML任务配置
- task: SSISBuild@1 inputs: projectPath: '$(Build.SourcesDirectory)/<projectname>' stripSensitive: false outputPath: '$(Build.ArtifactStagingDirectory)\<projectname>'
错误日志
06/12/2024 16:20:29 Build project <Build.SourcesDirectory>\obj\Development\<someproject>.dtproj successfully. 06/12/2024 16:20:29 Start to build project <Build.SourcesDirectory>\obj\Development\<someproject>DEV.dtproj ##[error]06/12/2024 16:20:29 Could not find file <Build.SourcesDirectory>\obj\Development\<someproject>DEV.dtproj.
原因分析
- 配置名称拼接错误:SSIS项目可能存在名为
DEV的构建配置,任务错误地将配置名称直接追加到项目文件名后,生成了不存在的<someproject>DEV.dtproj文件路径。 - projectPath参数指向问题:当前
projectPath指向项目文件夹而非具体的.dtproj文件,任务可能在遍历过程中误判了目标文件。 - 路径格式不一致:YAML中混用了斜杠
/和反斜杠\,可能导致路径解析异常。
解决建议
- 修正projectPath指向具体文件:将
projectPath改为指向实际的.dtproj文件,而非文件夹:projectPath: '$(Build.SourcesDirectory)/<projectname>/<someproject>.dtproj' - 显式指定构建配置:在任务中添加
configuration参数,指定正确的配置名称(比如日志中出现的Development),避免任务自动拼接错误文件名:- task: SSISBuild@1 inputs: projectPath: '$(Build.SourcesDirectory)/<projectname>/<someproject>.dtproj' configuration: 'Development' stripSensitive: false outputPath: '$(Build.ArtifactStagingDirectory)/<projectname>' - 检查SSIS项目配置:在Visual Studio中打开项目,右键项目→属性→配置属性,确认
DEV配置的输出设置是否正确,是否存在多余的项目文件变体。 - 验证文件结构:在SSISBuild任务前添加命令行任务,列出项目目录下的文件,确认
.dtproj文件的实际名称和位置:- task: CmdLine@2 inputs: script: | dir $(Build.SourcesDirectory)/<projectname> /s
内容的提问来源于stack exchange,提问作者user18610347
相关产品推荐
相关产品推荐

