Nbench: No se pudo analizar la versión de marco especificada '2.1'

Creado en 15 oct. 2018  ·  7Comentarios  ·  Fuente: petabridge/NBench

dotnet nbench ha fallado con el siguiente registro.

❯ dotnet nbench
Building for framework netcoreapp2.1...
  Benchmark.SimepleOneway.Local -> /SolutionDir/ProjectDir/bin/Release/netcoreapp2.1/Benchmark.SimepleOneway.Local.dll
Running .NET Core 2.1 tests for framework netcoreapp2.1...
OutputDir /SolutionDir/ProjectDir/PerfResults
The specified framework version '2.1' could not be parsed
The specified framework 'Microsoft.NETCore.App', version '2.1' was not found.
  - Check application dependencies and target a framework version installed at:
      /usr/local/share/dotnet/
  - Installing .NET Core prerequisites might help resolve this problem:
      http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
  - The .NET Core framework and SDK can be installed from:
      https://aka.ms/dotnet-download
  - The following versions are installed:
      2.0.9 at [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
      2.1.3 at [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
      2.1.5 at [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
bug benchmark-execution

Todos 7 comentarios

@HIPERCUBE, esto podría ser un problema con su entorno, pero permítame verificarlo.

¿Tiene un global.json o algo en su proyecto que especifique una versión en tiempo de ejecución?

Puede confirmar problemas al ejecutar NBench con dotnet core 2.1

The specified framework version '2.1' could not be parsed
The specified framework 'Microsoft.NETCore.App', version '2.1' was not found.
  - Check application dependencies and target a framework version installed at:
      C:\Program Files\dotnet\
  - Installing .NET Core prerequisites might help resolve this problem:
      http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
  - The .NET Core framework and SDK can be installed from:
      https://aka.ms/dotnet-download
  - The following versions are installed:
      2.0.6 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      2.0.7 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      2.0.9 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      2.1.1 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      2.1.2 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      2.1.3-servicing-26724-03 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      2.1.4 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      2.1.5 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

No tengo ningún archivo gloabl.json y otros proyectos 2.1 funcionan bien. También instalé el tiempo de ejecución 2.1 para verificar si hay una falta de coincidencia en la versión, pero aún no funciona.

Si es de alguna ayuda, descubrí que agregar <RuntimeFrameworkVersion>2.1.5</RuntimeFrameworkVersion> a mi .csproj solucionó el problema (el crédito va a @ Rene-Sackers por la solución que enumeraron aquí: https://github.com/dotnet/cli/issues/ 10111 # issuecomment-429014700).

Esto parece ser un problema con el dotnet CLI, por lo que puedo decir, revisando algunos de los problemas vinculados y otros. Los errores en escrito aquí no son de NBench - son del dotnet proceso que dotnet-nbench desova para ejecutar el corredor de prueba.

Tengo la sensación de que la causa raíz del problema podría ser la forma en que llamamos al proceso dotnet , usando esta clase DotNetMuxer que importamos de ASP.NET Core:

https://github.com/petabridge/NBench/blob/557f2fbca250a4a45636f5e4b41b58b8440b33f2/src/NBench.Runner.DotNetCli/DotNetMuxer.cs#L1 -L74

Creé un proyecto de reproducción: https://github.com/Aaronontheweb/NBenchNetCore2.1Repro

Cuando llamo a dotnet build y luego dotnet nbench en el proyecto de muestra, obtengo el siguiente resultado:

λ  dotnet nbench
Building for framework netcoreapp2.1...
  NBenchRepro -> C:\Repositories\NBenchNetCore2.1Repro\NBenchRepro\bin\Release\netcoreapp2.1\NBenchRepro.dll
Running .NET Core 2.1.0 tests for framework netcoreapp2.1...
OutputDir C:\Repositories\NBenchNetCore2.1Repro\NBenchRepro\PerfResults
Executing Benchmarks in C:\Repositories\NBenchNetCore2.1Repro\NBenchRepro\bin\Release\netcoreapp2.1\NBenchRepro.dll
------------ STARTING NBenchRepro.CounterPerfSpecs+Benchmark ----------
--------------- BEGIN WARMUP ---------------
Elapsed: 00:00:00.1657419
[Counter] TestCounter - operations: 25,439,744.00 ,operations: /s 153,490,119.28 , ns / operations: 6.52
--------------- END WARMUP ---------------

--------------- BEGIN WARMUP ---------------
Elapsed: 00:00:00.1663968
[Counter] TestCounter - operations: 25,439,744.00 ,operations: /s 152,886,017.04 , ns / operations: 6.54
--------------- END WARMUP ---------------

--------------- BEGIN WARMUP ---------------
Elapsed: 00:00:00.1670527
[Counter] TestCounter - operations: 25,439,744.00 ,operations: /s 152,285,739.77 , ns / operations: 6.57
--------------- END WARMUP ---------------

--------------- BEGIN RUN ---------------
Elapsed: 00:00:00.1659459
[Counter] TestCounter - operations: 25,439,744.00 ,operations: /s 153,301,431.37 , ns / operations: 6.52
--------------- END RUN ---------------

--------------- BEGIN RUN ---------------
Elapsed: 00:00:00.1654938
[Counter] TestCounter - operations: 25,439,744.00 ,operations: /s 153,720,223.96 , ns / operations: 6.51
--------------- END RUN ---------------

--------------- BEGIN RUN ---------------
Elapsed: 00:00:00.1651669
[Counter] TestCounter - operations: 25,439,744.00 ,operations: /s 154,024,468.58 , ns / operations: 6.49
--------------- END RUN ---------------

--------------- RESULTS: NBenchRepro.CounterPerfSpecs+Benchmark ---------------
Test to ensure that a minimal throughput test can be rapidly executed.
--------------- DATA ---------------
[Counter] TestCounter: Max: 25,439,744.00 operations, Average: 25,439,744.00 operations, Min: 25,439,744.00 operations, StdDev: 0.00 operations
[Counter] TestCounter: Max / s: 154,024,468.58 operations, Average / s: 153,682,041.30 operations, Min / s: 153,301,431.37 operations, StdDev / s: 363,027.74 operations

--------------- ASSERTIONS ---------------
[PASS] Expected [Counter] TestCounter to must be greater than 10,000,000.00 operations; actual value was 153,682,041.30 operations.

------------ FINISHED NBenchRepro.CounterPerfSpecs+Benchmark ----------

Usando NBench 1.2.2 y dotnet --version 2.1.300 en este caso.

Así que esto se parece mucho a un problema de entorno, como ha sido a menudo el caso de problemas similares con dotnet xunit en el pasado. Si pudiera proporcionarnos más información sobre cómo se ve su entorno o una especificación de reproducción, reabriré este problema y seguiré analizando.

Mientras tanto, puede intentar una solución al especificar una versión de tiempo de ejecución explícita según la sugerencia de @ C-Babbage.

Siguiendo con esto, pude reproducir este problema yo mismo mientras trabajaba en https://github.com/petabridge/Petabridge.Tracing.Zipkin/pull/68

Llegué a la misma conclusión que los equipos de Entity Framework y XUnit: este es un problema con la CLI en sí y la solución parece especificar RuntimeFrameworkVersion dentro de sus proyectos de prueba. Eso le da a la CLI la información necesaria que necesita para resolver correctamente su tiempo de ejecución de .NET Core.

Con suerte, esto se mejorará en el futuro, pero este error se produce después de que dotnet-nbench activa un nuevo proceso dotnet para ejecutar las especificaciones; es un problema de CLI.

¿Fue útil esta página
0 / 5 - 0 calificaciones