我最近试图为Cloud Service项目设置CI。它可以在Visual Studio 2017和2019中很好地构建。但是,当调用MSBuild在Azure DevOps / ADO中运行它时,出现以下构建错误:
“未找到文件格式标题”
那很烦人!最初,我认为这是BOM问题或XML问题。修复不起作用。然后我在这里找到了一些有关NuGet引起问题的文章,但不是。
这是我的构建步骤:
- task: VSBuild@1
displayName: 'Build Worker Cloud Service - INT'
inputs:
solution: '**\MyService.ccproj'
msbuildArgs: '/t:Publish /t:restore /p:SkipInvalidConfigurations=true /p:BclBuildImported=Ignore /p:OutputPath=bin\ /p:PublishDir=$(build.artifactstagingdirectory)\appcloud\Provisioning.QA /p:TargetProfile=QA'
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration_Release)'
restoreNugetPackages: true
答案 0 :(得分:0)
问题是我正在为解决方案文件传递项目文件。通过在构建步骤中指定解决方案,然后在MSBuild参数中指定项目文件,问题就消失了:
- task: VSBuild@1
displayName: 'Build Worker Cloud Service - INT'
inputs:
solution: '**\SomeSolution.sln' (<-- SPECIFY SOLUTION HERE)
msbuildArgs: '/t:Publish /t:restore /p:Project=MyService.ccproj (<-- SPECIFY PROJECT HERE) /p:SkipInvalidConfigurations=true /p:BclBuildImported=Ignore /p:OutputPath=bin\ /p:PublishDir=$(build.artifactstagingdirectory)\appcloud\SomeFolderName.QA /p:TargetProfile=QA'
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration_Release)'
restoreNugetPackages: true
注意:YMMV在上面的参数上-不仅仅是复制和粘贴,因为这些是我的环境中的。请根据需要进行更改。我已经用箭头指向我为解决该问题所做的更改。