使用 Azure Pipelines 在 Visual Studio 中构建云服务 (ccproj) 项目时出错 "No file format header found"
Error "No file format header found" when building Cloud Service (ccproj) project in Visual Studio with Azure Pipelines
我最近正在尝试为云服务项目设置 CI。它在 Visual Studio 2017 年和 2019 年构建良好。但是,当在 Azure DevOps / ADO 中调用 MSBuild 以 运行 它时,我收到以下构建错误:
"No file format header found"
嗯,这很烦人!最初我认为这是 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
问题是我正在为解决方案文件传递项目文件。通过在构建步骤中指定解决方案,然后在 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 - 不要只是复制和粘贴,因为这些是我的环境中的一些。请根据需要进行更改。我将箭头指向我为解决问题所做的更改。
我最近正在尝试为云服务项目设置 CI。它在 Visual Studio 2017 年和 2019 年构建良好。但是,当在 Azure DevOps / ADO 中调用 MSBuild 以 运行 它时,我收到以下构建错误:
"No file format header found"
嗯,这很烦人!最初我认为这是 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
问题是我正在为解决方案文件传递项目文件。通过在构建步骤中指定解决方案,然后在 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 - 不要只是复制和粘贴,因为这些是我的环境中的一些。请根据需要进行更改。我将箭头指向我为解决问题所做的更改。