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

时间:2017-05-02 13:01:19

标签: .net msbuild .net-core nuget-package azure-pipelines-build-task

我有一个.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\1\s\src\My.Shared\My.Shared.csproj

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

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

  • 使用-MSBuildVersion 15强制其他MSBuild,但是会出错无法找到指定版本的msbuild:'15'(或者14就此而言)
  • 使用NuGet Command Task创建一个.nuspec文件,并使用生成的.nuspec而不是.csproj。不幸的是我不知道如何找到生成的assembly-filename以将其传递给AssemblyPath-argument(screenshot)。

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

2 个答案:

答案 0 :(得分:2)

原来这是工作的错误任务:我应该使用包命令使用.NET核心任务。

screenshot

答案 1 :(得分:0)

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

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

在NuGet Command任务之后,它将在Package.nuspec中创建一个$(Build.SourcesDirectory)文件。因此,您可以指定 cspro路径或nuspec文件以打包。{/ p>

enter image description here