Appveyoyr 无法构建 ASP.NET Core WebApi 项目
Posted
技术标签:
【中文标题】Appveyoyr 无法构建 ASP.NET Core WebApi 项目【英文标题】:Appveyoyr fails to build ASP.NET Core WebApi Project 【发布时间】:2018-05-22 16:51:44 【问题描述】:我不断收到此错误:
错误 MSB4041:项目的默认 XML 命名空间必须是 MSBuild XML 命名空间。如果项目是在 MSBuild 2003 中创作的 格式,请补充 xmlns="http://schemas.microsoft.com/developer/msbuild/2003" 到 元素。如果项目是在旧 1.0 或 1.2格式,请转成MSBuild 2003格式。
我的项目是在 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
实在想不出到底发生了什么。
有没有人遇到过类似的问题?
UPDATE(详细日志和导出的 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 进行构建?
【问题讨论】:
【参考方案1】:请将image: Visual Studio 2017
添加到您的appveyor.yml
【讨论】:
不幸的是,这不起作用。我还不知道为什么...也许我应该尝试在本地使用 msbuild 直接与我们的骑手一起从命令行进行构建,看看是否有任何错误。 看起来是 msbuild 12 失败。在我的本地驱动器上,我使用 14 或 15...仍然是 12,如 Appveyor 的日志中所述【参考方案2】:好的,所以问题很简单。实际上是 MsBuild 但无论如何它都会切换到版本 12,因为 Rider 将版本 12 硬编码到 sln 文件中,只需在 sln 文件中更改适当的版本目标,一切都会成功编译。
【讨论】:
以上是关于Appveyoyr 无法构建 ASP.NET Core WebApi 项目的主要内容,如果未能解决你的问题,请参考以下文章
安装 KB2993928 后无法构建 ASP.NET MVC4 解决方案