我继续收到此错误:
错误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 localy,一切都很好。不确定它的14或15是否都安装了。无论如何,有没有人知道是否有可能在Appveyor中使用15进行构建?
答案 0 :(得分:2)
请将image: Visual Studio 2017
添加到appveyor.yml
答案 1 :(得分:0)
好的,问题很简单。它实际上是MsBuild,但无论是什么因为Rider将版本12硬编码为sln文件,它只是更改了sln文件中的相应版本目标,并且所有内容都成功编译。