vsts将.net标准2打包到nuget中

vsts将.net标准2打包到nuget中,nuget,azure-devops,.net-standard,.net-standard-2.0,Nuget,Azure Devops,.net Standard,.net Standard 2.0,在VSTS构建过程中,我一整天都在尝试打包这个nuget包。它是.net标准2.0项目 这是我经常犯的错误之一 Unable to cast object of type 'System.String' to type 'NuGet.Frameworks.NuGetFramework'. 这将在控制台尝试打包时显示打印输出 ****************************************************************************** Startin

在VSTS构建过程中,我一整天都在尝试打包这个nuget包。它是.net标准2.0项目

这是我经常犯的错误之一

Unable to cast object of type 'System.String' to type 'NuGet.Frameworks.NuGetFramework'.
这将在控制台尝试打包时显示打印输出

******************************************************************************
Starting: NuGet pack
******************************************************************************
==============================================================================
Task         : NuGet
Description  : Restore, pack, or push NuGet packages, or run a NuGet command. Supports NuGet.org and authenticated feeds like Package Management and MyGet. Uses NuGet.exe and works with .NET Framework apps. For .NET Core and .NET Standard apps, use the .NET Core task.
Version      : 2.0.15
Author       : Microsoft Corporation
Help         : [More Information](https://go.microsoft.com/fwlink/?LinkID=613747)
==============================================================================
C:\Windows\system32\chcp.com 65001
Active code page: 65001
Attempting to pack file: d:\a\1\s\MyProject.Core.Framework.Logging\MyProject.Core.Framework.Logging.csproj
d:\a\_tool\NuGet\4.1.0\x64\nuget.exe pack d:\a\1\s\MyProject.Core.Framework.Logging\MyProject.Core.Framework.Logging.csproj -NonInteractive -OutputDirectory d:\a\1\a -Properties Configuration=release -Verbosity Detailed
NuGet Version: 4.1.0.2450
Attempting to build package from 'MyProject.Core.Framework.Logging.csproj'.
MSBuild auto-detection: using msbuild version '15.4.8.50001' from 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\bin'. Use option -MSBuildVersion to force nuget to use a specific version of MSBuild.
Packing files from 'd:\a\1\s\MyProject.Core.Framework.Logging\bin\release\netstandard2.0'.
Using 'MyProject.Core.Framework.Logging.1.0.0.nuspec' for metadata.
Add file 'd:\a\1\s\MyProject.Core.Framework.Logging\bin\release\netstandard2.0\MyProject.Core.Framework.Logging.dll' to package as 'lib\netstandard2.0\MyProject.Core.Framework.Logging.dll'
System.InvalidCastException: Unable to cast object of type 'System.String' to type 'NuGet.Frameworks.NuGetFramework'.
   at NuGet.ProjectManagement.NuGetProject.GetMetadata[T](String key)
   at NuGet.ProjectManagement.PackagesConfigNuGetProject..ctor(String folderPath, Dictionary`2 metadata)
   at CallSite.Target(Closure , CallSite , Type , Object , Dictionary`2 )
   at System.Dynamic.UpdateDelegates.UpdateAndExecute3[T0,T1,T2,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2)
   at NuGet.CommandLine.ProjectFactory.AddDependencies(Dictionary`2 packagesAndDependencies)
   at NuGet.CommandLine.ProjectFactory.ProcessDependencies(PackageBuilder builder)
   at NuGet.CommandLine.ProjectFactory.CreateBuilder(String basePath, NuGetVersion version, String suffix, Boolean buildIfNeeded, PackageBuilder builder)
   at NuGet.Commands.PackCommandRunner.BuildFromProjectFile(String path)
   at NuGet.CommandLine.PackCommand.ExecuteCommand()
   at NuGet.CommandLine.Command.ExecuteCommandAsync()
   at NuGet.CommandLine.Command.Execute()
   at NuGet.CommandLine.Program.MainCore(String workingDirectory, String[] args)
Error: d:\a\_tool\NuGet\4.1.0\x64\nuget.exe failed with return code: 1
An error ocurred while trying to pack the files.
这是nuspec文件

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
  <metadata>
    <id>MyrProject.Core.Framework.Logging</id>
    <version>1.0.0</version>
    <authors>Christian Green</authors>
    <owners>Christian Green</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <projectUrl>https://MyrProject.visualstudio.com/MyrProject Core Frameworks/_wiki?pagePath=/MyrProject-Core-Frameworks</projectUrl>
    <iconUrl>http://MyrProject.com/application/files/cache/c169905894409716427e11acc3bdc2df.png</iconUrl>
    <description>Package Description</description>
    <dependencies>
      <group targetFramework=".NETStandard2.0">
        <dependency id="log4net" version="2.0.8" exclude="Build,Analyzers" />
        <dependency id="Microsoft.EntityFrameworkCore.SqlServer" version="2.0.0" exclude="Build,Analyzers" />
      </group>
    </dependencies>
  </metadata>
</package>

MyrProject.Core.Framework.Logging
1.0.0

如果需要,我可以提供更多细节

需要使用命令。

您不需要“dotnetpack”,仍然可以使用“msbuildpack”来完成。 但是您需要使用“Nuget Toolinstaller”插入额外的步骤,以便指定Nuget版本>=4.3。看看怎么做


此外,您可能希望坚持使用版本=4.3
。该问题似乎在4.3.0中得到了解决。

该问题的可能重复也解决了我的问题