NuGet Packager Task 在 VSTS 中使用了错误的 MSBuild?

NuGet Packager Task uses wrong MSBuild in VSTS?

我有一个 .Net Standard 1.5 库,并尝试在 Visual Studio Team Services 中获得自动化的 .NET Core 构建,但是 NuGet Packager Task 以某种方式生成错误:

MSBuild auto-detection: using msbuild version '4.0' from 'C:\Windows\Microsoft.NET\Framework\v4.0.30319'.
Attempting to build package from 'My.Shared.csproj'.
##[error]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 <Project> element. If the project has been authored in the old 1.0 or 1.2 format, please convert it to MSBuild 2003 format.  C:\a\s\src\My.Shared\My.Shared.csproj

包应该使用自动语义版本,这就是我使用 GitVersion 扩展的原因。 GitVersion 扩展不支持 .NET Core,这就是为什么我需要创建一个单独的 NuGet Packager 任务。 让我感到奇怪的是自动检测使用的是 MSBuild 4.0,因为我正在使用 .NET Core (screenshot).

构建它

到目前为止我尝试过的事情:

这里发生了什么以及如何修复它有什么提示、技巧或想法吗?例如。是否可以通过指示 NuGet Packager Task 使用 MSBuild 15 来修复它?如果可以:我该怎么做?

根据您的第一个屏幕截图,您似乎只想打包 *.csproj 个文件,因此如果您使用没有附加参数的 NuGet 命令任务 (nuget spec) (-AssemblyPath).

创建 .nuspec 文件然后在 NuGet Packager 任务中使用它的方法可以正常工作。

NuGet 命令任务完成后,它将在 $(Build.SourcesDirectory) 中创建一个 Package.nuspec 文件。因此,您可以指定 要打包的 cspro 或 nuspec 文件的路径 $(Build.SourcesDirectory)\*.nuspec.

事实证明这是错误的工作任务:我应该将 .NET Core 任务与 pack 命令一起使用。