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 文件中的适当版本目标,一切都会成功编译。
我一直收到这个错误:
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 文件中的适当版本目标,一切都会成功编译。