Azure 构建管道:VSBuild 在 CodeDom 提供程序上失败

Azure Build Pipeline: VSBuild fails on The CodeDom provider

几个月来,我的构建管道(Microsoft 托管的代理)每天早上都在 运行,但今天早上 VSBuild 任务突然失败。错误描述为:

"##[error]ASPNETCOMPILER(0,0): 错误 ASPCONFIG: 找不到 CodeDom 提供程序类型 "Microsoft.VisualC.CppCodeProvider, CppCodeProvider, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"。"

See image of failed build here

我该如何解决这个问题?

不确定您是否使用私人代理。据我所知,此错误可能是由于 PrecompileBeforePublish 属性 在您的项目某处设置为 true 造成的。(csproj 或发布配置文件)。

作为一种解决方法,您可以将 /p:PrecompileBeforePublish=false 作为参数传递给您的 VSBuild 任务。但这可能会使您的应用程序的第一反应变慢。

或者您可以使用 this 这样的命令将其注册到 GAC:

gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\xxxx\VSEditon\Common7\IDE\PublicAssemblies\CppCodeProvider.dll"

因为在 VS2017 之后,C++ 项目对 xsd.exe 的支持被弃用了,我们需要按照 here.

中的描述手动将其程序集添加到 GAC 中

我设法通过跳过失败的资产项目的构建来解决这个问题。这是使用 Visual Studio 中的配置管理器完成的(位于 Build->Configuration Manager 中)。我刚刚删除了复选标记。请参阅所附图片进行说明。

Skip project build

Configuration Manager