Terjadi pada node yang menjalankan .NET Core 2.2 dan yang lebih baru.
Apakah ada solusi/alternatif untuk saat ini?
Saya mencoba mengubah target proyek tetapi menyadari masalahnya benar-benar dengan CLI. Saya membuatnya bekerja dengan:
1) mengubah versi CLI untuk proyek itu dengan menambahkan global.json (ref: https://markheath.net/post/switching-between-netcore-sdk-versions )
2) saya kemudian mengalami kesalahan tentang tidak memiliki 2.1 untuk kerangka kerja yang mengharuskan menambahkan ini ke file csproj di PropertyGroup:
3) Kemudian ada kesalahan tentang paket yang dipulihkan dengan runtime yang berbeda dari build/publish. Perbaiki untuk itu hanya menjalankan "dotnet restore" dari cli lagi.
Setelah itu, saya dapat menjalankan "dotnet nbench" terhadap proyek itu dengan baik.
Terima kasih telah memposting solusi terperinci! @izavala dan saya sedang mencari untuk melakukan perbaikan kegunaan besar lainnya untuk NBench 2.0 dan ini akan ada di daftar kami untuk itu.
Hanya dalam kasus seseorang berjalan ke dalam ini, tapi seperti saya tidak bisa biola dengan kerangka target atau global.json
, kerja-sekitar lain adalah dengan menggunakan berdokumen --fx-version {version}
bendera dengan dotnet nbench
, Misalnya:
fxversion=$(dotnet --list-runtimes | \
grep Microsoft.NETCore.App | \
awk '{ print $2 }' | \
tail -1)
dotnet nbench --fx-version $fxversion
Atau:
$fxversion = dotnet --list-runtimes | `
select-string "Microsoft.NETCore.App" | `
select-object -last 1 | `
foreach-object { $data = $_ -split " "; $data[1] }
dotnet nbench --fx-version $fxversion
Alasan perintah gagal tanpa ini adalah karena runner memformat perintah dotnet exec
dengan variabel fxVersion
, dan ketika kosong, ini menghasilkan --fx-version --depsfile "Foo.deps.json"
. Ini pada gilirannya diuraikan oleh dotnet exec
seolah-olah --depsfile
adalah nilai untuk flag --fx-version
, dan Foo.deps.json
ini ditafsirkan sebagai file Majelis untuk dijalankan .
Baris yang menyinggung: https://github.com/petabridge/NBench/blob/557f2fbca250a4a45636f5e4b41b58b8440b33f2/src/NBench.Runner.DotNetCli/Program.cs#L284
Tambalan ini harus memperbaikinya tetapi saya tidak punya waktu untuk melakukan pengujian yang tepat dan/atau permintaan tarik sekarang:
diff --git a/src/NBench.Runner.DotNetCli/Program.cs b/src/NBench.Runner.DotNetCli/Program.cs
index c45b32e..417319c 100644
--- a/src/NBench.Runner.DotNetCli/Program.cs
+++ b/src/NBench.Runner.DotNetCli/Program.cs
@@ -281,7 +281,10 @@ namespace NBench.Runner.DotNetCli
var depsFile = targetFileNameWithoutExtension + ".deps.json";
var runtimeConfigJson = targetFileNameWithoutExtension + ".runtimeconfig.json";
- var args = $@"exec --fx-version {fxVersion} --depsfile ""{depsFile}"" ";
+ var args = $@"exec --depsfile ""{depsFile}"" ";
+
+ if (!string.IsNullOrWhiteSpace(fxVersion))
+ args += $"--fx-version {fxVersion} ";
if (File.Exists(Path.Combine(workingDirectory, runtimeConfigJson)))
args += $@"--runtimeconfig ""{runtimeConfigJson}"" ";
Diselesaikan melalui NBench 2.0.0 https://github.com/petabridge/NBench/releases/tag/2.0.0 - tidak ada lagi dotnet nbench
.