يحدث على العقد التي تعمل بنظام .NET Core 2.2 والإصدارات الأحدث.
هل يوجد حل / بديل في الوقت الحالي؟
حاولت تغيير هدف المشروع لكنني أدركت أن المشكلة تتعلق بالفعل بـ CLI. حصلت عليه تعمل من خلال:
1) تغيير إصدار CLI لهذا المشروع بإضافة global.json (المرجع: https://markheath.net/post/switching-between-netcore-sdk-versions)
2) كان لدي خطأ بشأن عدم وجود 2.1 لإطار عمل يتطلب إضافة هذا إلى ملف csproj في PropertyGroup:
3) ثم حدث خطأ حول الحزم المستعادة بوقت تشغيل مختلف عن build / publish. كان الإصلاح لذلك مجرد تشغيل "استعادة dotnet" من cli مرة أخرى.
بعد ذلك ، تمكنت من تشغيل "dotnet nbench" ضد هذا المشروع بشكل جيد.
شكرا لنشر الحل المفصل! أنا و izavala نتطلع إلى إجراء إصلاح شامل آخر لقابلية الاستخدام لـ NBench 2.0 وسيكون هذا على قائمتنا لذلك.
فقط في حالة تعامل شخص ما مع هذا ، ولكن مثلي لا يمكنه العبث بالأطر المستهدفة أو global.json
، هناك حل آخر هو استخدام العلم غير الموثق --fx-version {version}
مع dotnet nbench
، على سبيل المثال:
fxversion=$(dotnet --list-runtimes | \
grep Microsoft.NETCore.App | \
awk '{ print $2 }' | \
tail -1)
dotnet nbench --fx-version $fxversion
أو:
$fxversion = dotnet --list-runtimes | `
select-string "Microsoft.NETCore.App" | `
select-object -last 1 | `
foreach-object { $data = $_ -split " "; $data[1] }
dotnet nbench --fx-version $fxversion
سبب فشل الأمر بدون ذلك هو أن العداء يقوم بتنسيق الأمر dotnet exec
باستخدام المتغير fxVersion
، وعندما يكون فارغًا ، ينتج عنه --fx-version --depsfile "Foo.deps.json"
. يتم تحليل هذا بدوره بواسطة dotnet exec
كما لو أن --depsfile
كانت قيمة علامة --fx-version
، ويتم تفسير Foo.deps.json
كملف تجميع للتشغيل .
السطر المخالف: https://github.com/petabridge/NBench/blob/557f2fbca250a4a45636f5e4b41b58b8440b33f2/src/NBench.Runner.DotNetCli/Program.cs#L284
يجب أن يصلح هذا التصحيح ولكن ليس لدي الوقت لإجراء اختبار مناسب و / أو طلب سحب في الوقت الحالي:
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}"" ";
تم الحل عبر NBench 2.0.0 https://github.com/petabridge/NBench/releases/tag/2.0.0 - ليس أكثر من dotnet nbench
.