tutorial porta net functions c# azure msbuild azure-functions

c# - porta - Conflicto de versión causado por Microsoft.NET.Sdk.Functions



function json azure functions (2)

Estoy teniendo problemas con un proyecto que hace referencia a 2 paquetes que luego hacen referencia a Newtonsoft.Json pero ambos en versiones diferentes. Estoy usando el paquete nuget de Refit y Microsoft.NET.Sdk.Functions . Cuando intento crear la solución, aparece el siguiente error:

C:/dev/noddy/noddy-api/src/noddy.Api>dotnet build C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj : error NU1607: Version conflict detected for Newtonsoft.Json. Reference the package directly from the project to resolve this issue. /r C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj : error NU1607: noddy.Api (>= 1.0.0) -> Refit (>= 4.0.1) -> Newtonsoft.Json (>= 10.0.3) /r C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj : error NU1607: noddy.Api (>= 1.0.0) -> Microsoft.NET.Sdk.Functions (>= 1.0.2) -> Newtonsoft.Json (>= 9.0.1).

Ahora, si hago lo que dice y hago referencia al paquete directamente desde mi proyecto, obtengo otro error al crear:

C:/dev/noddy/noddy-api/src/noddy.Api>dotnet add package Newtonsoft.Json Writing C:/Users/joebloggs/AppData/Local/Temp/tmp7250.tmp info : Adding PackageReference for package ''Newtonsoft.Json'' into project ''C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj''. log : Restoring packages for C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj... info : CACHE http://www.myget.org/F/azure-appservice/api/v2/FindPackagesById()?id=''Newtonsoft.Json'' info : CACHE https://www.nuget.org/api/v2/FindPackagesById()?id=''Newtonsoft.Json'' info : Package ''Newtonsoft.Json'' is compatible with all the specified frameworks in project ''C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj''. info : PackageReference for package ''Newtonsoft.Json'' version ''10.0.3'' added to file ''C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj''. C:/dev/noddy/noddy-api/src/noddy.Api>dotnet build Microsoft (R) Build Engine version 15.3.409.57025 for .NET Core Copyright (C) Microsoft Corporation. All rights reserved. noddy.Api -> C:/dev/noddy/noddy-api/src/noddy.Api/bin/Debug/net461/bin/noddy.Api.dll C:/Users/joebloggs/.nuget/packages/microsoft.net.sdk.functions/1.0.2/build/netstandard1.0/Microsoft.NET.Sdk.Functions.Build.targets(31,5): error : Could not load file or assembly ''Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed''. The system cannot find the file specified. [C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj] Build FAILED. C:/Users/joebloggs/.nuget/packages/microsoft.net.sdk.functions/1.0.2/build/netstandard1.0/Microsoft.NET.Sdk.Functions.Build.targets(31,5): error : Could not load file or assembly ''Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed''. The system cannot find the file specified. [C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj] 0 Warning(s) 1 Error(s) Time Elapsed 00:00:03.05 C:/dev/noddy/noddy-api/src/noddy.Api>

He intentado agregar redirecciones de ensamblados pero parece que se ignoran.

También he intentado eliminar todos los paquetes y volver a agregarlos uno por uno y aún así no me alegro:

C:/dev/noddy/noddy-api/src/noddy.Api>dotnet remove package refit info : Removing PackageReference for package ''refit'' from project ''C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj''. C:/dev/noddy/noddy-api/src/noddy.Api>dotnet remove package Microsoft.NET.Sdk.Functions info : Removing PackageReference for package ''Microsoft.NET.Sdk.Functions'' from project ''C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj''. C:/dev/noddy/noddy-api/src/noddy.Api>dotnet remove package Newtonsoft.Json info : Removing PackageReference for package ''Newtonsoft.Json'' from project ''C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj''. C:/dev/noddy/noddy-api/src/noddy.Api>dotnet add package Microsoft.NET.Sdk.Functions Writing C:/Users/joebloggs/AppData/Local/Temp/tmp1F1B.tmp info : Adding PackageReference for package ''Microsoft.NET.Sdk.Functions'' into project ''C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj''. log : Restoring packages for C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj... info : CACHE http://www.myget.org/F/azure-appservice/api/v2/FindPackagesById()?id=''Microsoft.NET.Sdk.Functions'' info : CACHE https://www.nuget.org/api/v2/FindPackagesById()?id=''Microsoft.NET.Sdk.Functions'' info : Package ''Microsoft.NET.Sdk.Functions'' is compatible with all the specified frameworks in project ''C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj''. info : PackageReference for package ''Microsoft.NET.Sdk.Functions'' version ''1.0.2'' added to file ''C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj''. C:/dev/noddy/noddy-api/src/noddy.Api>dotnet add package refit Writing C:/Users/joebloggs/AppData/Local/Temp/tmp39D7.tmp info : Adding PackageReference for package ''refit'' into project ''C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj''. log : Restoring packages for C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj... info : CACHE http://www.myget.org/F/azure-appservice/api/v2/FindPackagesById()?id=''refit'' info : CACHE https://www.nuget.org/api/v2/FindPackagesById()?id=''refit'' error: Version conflict detected for Newtonsoft.Json. Reference the package directly from the project to resolve this issue. error: noddy.Api (>= 1.0.0) -> Refit (>= 4.0.1) -> Newtonsoft.Json (>= 10.0.3) error: noddy.Api (>= 1.0.0) -> Microsoft.NET.Sdk.Functions (>= 1.0.2) -> Newtonsoft.Json (>= 9.0.1). info : Package ''refit'' is compatible with all the specified frameworks in project ''C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj''. info : PackageReference for package ''refit'' version ''4.0.1'' added to file ''C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj''. C:/dev/noddy/noddy-api/src/noddy.Api>dotnet build C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj : error NU1607: Version conflict detected for Newtonsoft.Json. Reference the package directly from the project to resolve this issue. /r C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj : error NU1607: noddy.Api (>= 1.0.0) -> Refit (>= 4.0.1) -> Newtonsoft.Json (>= 10.0.3) /r C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj : error NU1607: noddy.Api (>= 1.0.0) -> Microsoft.NET.Sdk.Functions (>= 1.0.2) -> Newtonsoft.Json (>= 9.0.1). C:/dev/noddy/noddy-api/src/noddy.Api>dotnet add package Newtonsoft.Json Writing C:/Users/joebloggs/AppData/Local/Temp/tmp8B13.tmp info : Adding PackageReference for package ''Newtonsoft.Json'' into project ''C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj''. log : Restoring packages for C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj... info : CACHE http://www.myget.org/F/azure-appservice/api/v2/FindPackagesById()?id=''Newtonsoft.Json'' info : CACHE https://www.nuget.org/api/v2/FindPackagesById()?id=''Newtonsoft.Json'' info : Package ''Newtonsoft.Json'' is compatible with all the specified frameworks in project ''C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj''. info : PackageReference for package ''Newtonsoft.Json'' version ''10.0.3'' added to file ''C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj''. C:/dev/noddy/noddy-api/src/noddy.Api>dotnet build Microsoft (R) Build Engine version 15.3.409.57025 for .NET Core Copyright (C) Microsoft Corporation. All rights reserved. noddy.Api -> C:/dev/noddy/noddy-api/src/noddy.Api/bin/Debug/net461/bin/noddy.Api.dll C:/Users/joebloggs/.nuget/packages/microsoft.net.sdk.functions/1.0.2/build/netstandard1.0/Microsoft.NET.Sdk.Functions.Build.targets(31,5): error : Could not load file or assembly ''Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed''. The system cannot find the file specified. [C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj] Build FAILED. C:/Users/joebloggs/.nuget/packages/microsoft.net.sdk.functions/1.0.2/build/netstandard1.0/Microsoft.NET.Sdk.Functions.Build.targets(31,5): error : Could not load file or assembly ''Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed''. The system cannot find the file specified. [C:/dev/noddy/noddy-api/src/noddy.Api/noddy.Api.csproj] 0 Warning(s) 1 Error(s) Time Elapsed 00:00:03.05 C:/dev/noddy/noddy-api/src/noddy.Api>

Además, no hay nada mágico en mi csproj:

<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net461</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.2" /> <PackageReference Include="Newtonsoft.Json" Version="10.0.3" /> <PackageReference Include="refit" Version="4.0.1" /> </ItemGroup> <ItemGroup> <Reference Include="Microsoft.CSharp" /> <Reference Include="System.Configuration" /> </ItemGroup> <ItemGroup> <None Update="host.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> <None Update="local.settings.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> <None Update="proxies.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> </ItemGroup> </Project>

¿Alguien tiene alguna idea de cómo solucionar este problema?


Correr en un problema relacionado, no poder instalar el paquete Mirosoft.NET.Sdk. Se resolvió esto creando un nuevo proyecto de funciones de Cloud - Azure usando vs2017. Ese proyecto viene con el paquete Mirosoft.NET.Sdk versión 1.0.6. Actualizar eso a 1.0.7 realmente funciona. Luego instaló Newton 9.0.1. De ahí en adelante, no hay problemas.


Desafortunadamente, este es un error conocido del proyecto MSBuild de Azure Functions . Todas las versiones de lanzamiento tienen una dependencia codificada en Json.NET 9.0.1. La única solución informada es degradar a la versión 1.0.0-alpha6 .

La falta de resumen y descripción del paquete, así como la falta de documentación en el proyecto Github son una clara señal de que este es un trabajo en progreso.

Suponiendo que lo necesite, puede intentar clonar el repositorio, cambiar la dependencia en .csproj y reconstruir el paquete.

Mientras tanto, probablemente debería agregar un comentario al problema , explicando que usted también está afectado.

Para arreglar esto, la línea 39 de csproj debería cambiar de:

<PackageReference Include="Newtonsoft.Json" Version="[9.0.1]" />

a

<PackageReference Include="Newtonsoft.Json" Version="9.0.1" />

Existen otras dependencias de versión exactas en las versiones beta de Microsoft.Azure.WebJobs paquetes Microsoft.Azure.WebJobs

Actualización noviembre 2018

El archivo Léame del repositorio se actualizó el 31 de marzo de 2018 con una sección de preguntas frecuentes que explica por qué la versión de Json.NET está bloqueada y cómo manejar esto:

P: Necesito una versión diferente de Newtonsoft.Json. ¿Qué debo hacer?

R: Agregue la versión que necesita a su csproj. Por ejemplo, para usar 11.0.2, agregue esto a su csproj

<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />

P: ¿Por qué se ha bloqueado Newtonsoft.Json en primer lugar?

R: La versión de Newtonsoft.Json está bloqueada para coincidir con la versión utilizada por las funciones de tiempo de ejecución

Hay una larga discusión sobre el problema (ahora bloqueado) que explica que desbloquear la versión solo retrasaría los problemas hasta la implementación