使用Azure Pipelines在Visual Studio中构建Cloud Service(ccproj)项目时出现错误“找不到文件格式头”

时间:2019-06-03 16:06:23

标签: visual-studio azure-devops continuous-integration azure-cloud-services

我最近试图为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

1 个答案:

答案 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在上面的参数上-不仅仅是复制和粘贴,因为这些是我的环境中的。请根据需要进行更改。我已经用箭头指向我为解决该问题所做的更改。