.NET Core2.2以降を実行しているノードで発生します。
今のところ回避策/代替手段はありますか?
プロジェクトのターゲットを変更しようとしましたが、問題は本当にCLIにあることに気付きました。 私はそれを次の方法で動作させました:
1)global.jsonを追加してそのプロジェクトのCLIのバージョンを変更します(参照:https://markheath.net/post/switching-between-netcore-sdk-versions)
2)次に、PropertyGroupのcsprojファイルにこれを追加する必要があるフレームワークに2.1がないというエラーが発生しました。
3)次に、ビルド/公開とは異なるランタイムで復元されたパッケージに関するエラーが発生しました。 そのための修正は、CLIから「dotnetrestore」を再度実行することでした。
その後、そのプロジェクトに対して「dotnetnbench」を正常に実行することができました。
詳細な回避策を投稿していただきありがとうございます。 @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"
です。 これは、 --depsfile
が--fx-version
フラグの値であるかのように、 dotnet exec
によって解析され、次のFoo.deps.json
は実行するアセンブリファイルとして解釈されます。 。
問題のある行: https :
このパッチで修正される
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.0https : //github.com/petabridge/NBench/releases/tag/2.0.0を介して解決- dotnet nbench
はもう必要ありません。