Nbench: Kerangka kerja versi '2.1' yang ditentukan tidak dapat diuraikan

Dibuat pada 15 Okt 2018  ·  7Komentar  ·  Sumber: petabridge/NBench

dotnet nbench telah gagal dengan log di bawah ini.

❯ 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

Semua 7 komentar

@HIPERCUBE ini mungkin masalah dengan lingkungan Anda - tetapi izinkan saya memeriksa ulang.

Apakah Anda memiliki global.json atau apa pun di proyek Anda yang menentukan versi runtime?

Dapat mengkonfirmasi masalah menjalankan NBench dengan 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]

Saya tidak memiliki file gloabl.json dan proyek 2.1 lainnya berjalan dengan baik. Saya juga menginstal runtime 2.1 untuk memeriksa ulang apakah ada versi yang tidak cocok tetapi masih tidak berfungsi.

Jika ada bantuan, saya menemukan menambahkan <RuntimeFrameworkVersion>2.1.5</RuntimeFrameworkVersion> ke .csproj saya memperbaiki masalah (kredit diberikan ke @Rene-Sackers untuk solusi yang mereka cantumkan di sini: https://github.com/dotnet/cli/issues/ 10111#issuecomment-429014700).

Ini tampaknya menjadi masalah dengan dotnet CLI, sejauh yang saya tahu - melihat beberapa masalah terkait et al. Kesalahan yang ditulis di sini bukan dari NBench - itu dari proses dotnet yang dotnet-nbench memunculkan untuk menjalankan test runner.

Saya merasa bahwa akar penyebab masalah mungkin adalah cara kami memanggil proses dotnet , menggunakan kelas DotNetMuxer kami impor dari ASP.NET Core:

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

Saya membuat proyek reproduksi: https://github.com/Aaronontheweb/NBenchNetCore2.1Repro

Ketika saya memanggil dotnet build dan kemudian dotnet nbench pada proyek sampel di sana, saya mendapatkan output berikut:

λ  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 ----------

Menggunakan NBench 1.2.2 dan dotnet --version 2.1.300 dalam kasus ini.

Jadi ini terlihat seperti masalah lingkungan, seperti yang sering terjadi pada masalah serupa dengan dotnet xunit di masa lalu. Jika Anda dapat memberi kami beberapa informasi lebih lanjut tentang seperti apa lingkungan Anda atau spesifikasi reproduksi, saya akan membuka kembali masalah ini dan terus menghilangkannya.

Sementara itu, Anda dapat mencoba solusi dengan menentukan versi runtime eksplisit sesuai saran @C-Babbage.

Menindaklanjuti beberapa ini - dapat mereproduksi masalah ini sendiri saat mengerjakan https://github.com/petabridge/Petabridge.Tracing.Zipkin/pull/68

Saya mencapai kesimpulan yang sama dengan tim Entity Framework dan XUnit: ini adalah masalah dengan CLI itu sendiri dan penyelesaiannya tampaknya menentukan RuntimeFrameworkVersion di dalam proyek pengujian Anda. Itu memberi CLI informasi yang diperlukan yang diperlukan untuk menyelesaikan runtime .NET Core Anda dengan benar.

Semoga ini diperbaiki di masa mendatang, tetapi kesalahan ini terjadi setelah dotnet-nbench memutar proses dotnet untuk menjalankan spesifikasi - ini adalah masalah CLI.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat