Appveyoyr 无法构建 ASP.NET 核心 WebApi 项目

Appveyoyr fails to build ASP.NET Core WebApi Project

我一直收到这个错误:

error MSB4041: The default XML namespace of the project must be the MSBuild XML namespace. If the project is authored in the MSBuild 2003 format, please add xmlns="http://schemas.microsoft.com/developer/msbuild/2003" to the element. If the project has been authored in the old 1.0 or 1.2 format, please convert it to MSBuild 2003 format.

我的项目是在Rider中搭建的,本地编译很顺利。我想这可能与 MSBuild 版本有关。

我的appveyor.yml看起来像这样:

version: 1.0.{build}
image: Visual Studio 2017
configuration: Release
platform: Any CPU
before_build:
- cmd: set ASPNETCORE_ENVIRONMENT=Production
build:
  project: BoatInspectorWebApi.sln
  verbosity: detailed

真的想不起来是怎么回事。

有没有人遇到过类似的问题?

更新(详细日志和导出的 yml)] 我导出了 yml 来检查自己是否有错误并做了详细的日志,打印错误的部分看起来像这样

使用工具版本“12.0”构建。 C:\projects\boatinspectorwebapi\BoatInspectorWebApi\BoatInspectorWebApi.csproj(1,1): 错误 MSB4041:项目的默认 XML 命名空间必须是 MSBuild XML 命名空间。如果项目是以 MSBuild 2003 格式编写的,请将 xmlns="http://schemas.microsoft.com/developer/msbuild/2003" 添加到元素中。如果项目是以旧的 1.0 或 1.2 格式编写的,请将其转换为 MSBuild 2003 格式。 完成构建项目 "C:\projects\boatinspectorwebapi\BoatInspectorWebApi\BoatInspectorWebApi.csproj"(默认目标)-- 失败。

看起来 Appveyor 使用的是 MsBuild 12,这导致了问题。我在本地使用 15 或 14,一切正常。不确定它是 14 还是 15,因为它们都已安装。无论如何,有人知道是否可以在 Appveyor 中使用 15 进行构建吗?

请将 image: Visual Studio 2017 添加到您的 appveyor.yml

好的,问题很简单。它实际上是 MsBuild,但无论如何它都会切换到版本 12,因为 Rider 将版本 12 硬编码到 sln 文件中,只需更改 sln 文件中的适当版本目标,一切都会成功编译。