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).
构建它
到目前为止我尝试过的事情:
- 使用 -MSBuildVersion 15 强制其他 MSBuild,但这会产生错误 找不到指定的 msbuild 版本:'15'(或 14 就此而言)
- 使用 NuGet 命令任务创建一个 .nuspec 文件并使用生成的 .nuspec 而不是 .csproj。不幸的是,我不知道如何找到生成的程序集文件名以将其传递给 AssemblyPath 参数 (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 命令一起使用。
我有一个 .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).
构建它到目前为止我尝试过的事情:
- 使用 -MSBuildVersion 15 强制其他 MSBuild,但这会产生错误 找不到指定的 msbuild 版本:'15'(或 14 就此而言)
- 使用 NuGet 命令任务创建一个 .nuspec 文件并使用生成的 .nuspec 而不是 .csproj。不幸的是,我不知道如何找到生成的程序集文件名以将其传递给 AssemblyPath 参数 (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 命令一起使用。