web-dev-qa-db-fra.com

Impossible de compresser un package Nuget sur VSTS Impossible de convertir l'objet de type 'System.String' en type 'NuGet.Frameworks.NuGetFramework'

En cours d'exécution 'pack' j'obtiens l'erreur suivante ...

2017-07-05T10:37:09.7762333Z ##[section]Starting: NuGet pack
2017-07-05T10:37:09.7762333Z ==============================================================================
2017-07-05T10:37:09.7762333Z Task         : NuGet
2017-07-05T10:37:09.7762333Z Description  : Restore, pack, or Push NuGet packages, or run a NuGet command. Supports NuGet.org and authenticated feeds like Package Management and MyGet.
2017-07-05T10:37:09.7762333Z Version      : 2.0.3
2017-07-05T10:37:09.7762333Z Author       : Microsoft Corporation
2017-07-05T10:37:09.7762333Z Help         : [More Information](https://go.Microsoft.com/fwlink/?LinkID=613747)
2017-07-05T10:37:09.7762333Z ==============================================================================
2017-07-05T10:37:10.9664575Z Downloading: https://dist.nuget.org/win-x86-commandline/v4.0.0/nuget.exe
2017-07-05T10:37:11.0954621Z Caching tool: NuGet 4.0.0 x64
2017-07-05T10:37:11.1084622Z Using version: 4.0.0
2017-07-05T10:37:11.1094622Z Found tool in cache: NuGet 4.0.0 x64
2017-07-05T10:37:11.1214629Z [command]C:\Windows\system32\chcp.com 65001
2017-07-05T10:37:11.1634626Z Active code page: 65001
2017-07-05T10:37:11.2234637Z Attempting to pack file: d:\a\1\s\src\Esoterix\Esoterix.csproj
2017-07-05T10:37:11.2294640Z [command]d:\a\_tool\NuGet\4.0.0\x64\nuget.exe pack d:\a\1\s\src\Esoterix\Esoterix.csproj -NonInteractive -OutputDirectory d:\a\1\a -Properties Configuration=release -version 1.0.0-CI-201765-103711 -Verbosity Detailed
2017-07-05T10:37:12.3087180Z NuGet Version: 4.0.0.2283
2017-07-05T10:37:12.3187144Z Attempting to build package from 'Esoterix.csproj'.
2017-07-05T10:37:12.7569409Z MSBuild auto-detection: using msbuild version '15.1.1012.6693' 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.
2017-07-05T10:37:15.3118046Z Packing files from 'd:\a\1\s\src\Esoterix\bin\release\netcoreapp1.1'.
2017-07-05T10:37:15.7119285Z Add file 'd:\a\1\s\src\Esoterix\bin\release\netcoreapp1.1\Esoterix.dll' to package as 'lib\netcoreapp1.1\Esoterix.dll'
2017-07-05T10:37:15.7959331Z System.InvalidCastException: Unable to cast object of type 'System.String' to type 'NuGet.Frameworks.NuGetFramework'.
2017-07-05T10:37:15.7969309Z    at NuGet.ProjectManagement.NuGetProject.GetMetadata[T](String key)
2017-07-05T10:37:15.7969309Z    at NuGet.ProjectManagement.PackagesConfigNuGetProject..ctor(String folderPath, Dictionary`2 metadata)
2017-07-05T10:37:15.7969309Z    at CallSite.Target(Closure , CallSite , Type , Object , Dictionary`2 )
2017-07-05T10:37:15.7969309Z    at System.Dynamic.UpdateDelegates.UpdateAndExecute3[T0,T1,T2,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2)
2017-07-05T10:37:15.7969309Z    at NuGet.CommandLine.ProjectFactory.AddDependencies(Dictionary`2 packagesAndDependencies)
2017-07-05T10:37:15.7969309Z    at NuGet.CommandLine.ProjectFactory.ProcessDependencies(PackageBuilder builder)
2017-07-05T10:37:15.7969309Z    at NuGet.CommandLine.ProjectFactory.CreateBuilder(String basePath, NuGetVersion version, String suffix, Boolean buildIfNeeded, PackageBuilder builder)
2017-07-05T10:37:15.7969309Z    at NuGet.Commands.PackCommandRunner.BuildFromProjectFile(String path)
2017-07-05T10:37:15.7969309Z    at NuGet.CommandLine.PackCommand.ExecuteCommand()
2017-07-05T10:37:15.7969309Z    at NuGet.CommandLine.Command.ExecuteCommandAsync()
2017-07-05T10:37:15.7969309Z    at NuGet.CommandLine.Command.Execute()
2017-07-05T10:37:15.7969309Z    at NuGet.CommandLine.Program.MainCore(String workingDirectory, String[] args)
2017-07-05T10:37:15.8259323Z ##[error]Error: d:\a\_tool\NuGet\4.0.0\x64\nuget.exe failed with return code: 1
2017-07-05T10:37:15.8259323Z ##[error]An error ocurred while trying to pack the files.
2017-07-05T10:37:15.8289336Z ##[section]Finishing: NuGet pack

Il semblerait que tout soit réglé jusqu'à présent, alors je suis un peu coincé. Toutes les idées sont les bienvenues.

8
Keith Jackson

Dans VSTS, j'ai utilisé " dotnet pack " au lieu de " nuget pack ". Donc, ce problème a été résolu. 

Pour publier nuget lib sur VSTS, j'ai choisi la séquence de plugins suivante: 

  • Obtenir des sources
  • restauration de pépite 
  • construction dotnet
  • pack dotnet
  • nuget Push
20
Gilberto Alexandre

J'ai eu le même problème avec ma bibliothèque de classe .net standard 2.0 standard que j'étais emballé dans un paquet de nuget. Voici une capture d'écran de l'étape à ajouter pour remplacer l'étape Nuget Pack.

Type d'étape pour ajouter Step Type To Add

Voici comment j'ai configuré l'étape Here is how I configured the step

2
Jeff

 Using Nuget 4.9.1 version resolved resolved my issue.

L'utilisation de la version 4.9.1 de Nuget a résolu mon problème.

2
Praveena M

Cela semble être un problème en utilisant l'élément de pack Nuget intégré à VSTS. Je l'ai échangé contre un élément de la ligne de commande pour appeler le pack de dotnet et cela fonctionne maintenant.

0
Keith Jackson

Pour que la commande pack fonctionne, vous devez vous assurer que csproj comporte les balises suivantes:

<PackageId>*qualified_package_name*</PackageId>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

Ceci est particulièrement pertinent si vous avez migré d'un fichier CSPROJ à l'ancienne

0
DaveDean1